Как ссылаются на сторонние библиотеки DLL в службе приложений Azure

У меня есть простое решение webapi (ядро aspnet 2.1), состоящее из двух проектов: Test.api (содержащий контроллер) и Test.Models. Проект Models имеет пакет Newtosoft и использует атрибут JsonIgnore для моделей. Когда я развертываю это решение в службе приложений Azure и просматриваю содержимое развернутой папки через облачный обозреватель (также используется kudu), я не вижу dll Newtosoft.

Откуда на него ссылаются? Есть ли в службе приложений аналог GAC?


person Red    schedule 06.09.2018    source источник
comment
Да, это коробка Windows Server 2016 со специальной песочницей и .NET Framework 4.7. Ведет себя соответственно - cd %systemroot%\assembly && dir   -  person evilSnobu    schedule 06.09.2018
comment
@evilSnobu После .Net Framework 4.0 все ссылки GAC будут указывать на новый каталог cd %windir%\Microsoft.NET\assembly\ , и я не мог видеть никаких ссылок, связанных с newtonsoft в этом каталоге!   -  person Jayendran    schedule 06.09.2018
comment
Как вы можете cd (или rdp) подключиться к хост-компьютеру службы приложений? На моем локальном компьютере я вижу dll newtonsoft в папке C:\Program Files\dotnet\sdk\NuGetFallbackFolder. Предположительно, это было установлено, когда я установил .Net Core sdk.   -  person Red    schedule 06.09.2018
comment
О, мой плохой, я не увидел упоминания .NET Core. Я не знаю, как GAC работает с .NET Core, но он должен отражать обычную систему Windows. Просто dir /a /s newtonsoft*.dll из корня диска D в Kudu. @Red, см. это.   -  person evilSnobu    schedule 06.09.2018
comment
Спасибо. Можно увидеть dll newtonsoft на машине.   -  person Red    schedule 11.09.2018
comment
@evilSnobu Вы можете добавить ответ здесь.   -  person Tom Sun - MSFT    schedule 14.09.2018


Ответы (1)


Я не знаю, как GAC работает для .NET Core, но он должен отражать обычную систему Windows, по сути, это то, что представляет собой Служба приложений с работниками Windows, Windows Server + специальная песочница.

Просто dir /a /s newtonsoft*.dll из корня диска D в Kudu, и он должен указать вам на DLL в GAC.

person evilSnobu    schedule 14.09.2018