ASP. NET Приложение Core 3.1 не запускается на IIS, когда целевая среда выполнения переносима: сборка не найдена - PullRequest
0 голосов
/ 08 января 2020

Я написал простое ASP. NET Core 3.1 веб-приложение на основе шаблона в VS2019. Опубликовал приложение в файловой системе с целевым назначением netcoreapp3.1 в режиме развертывания, зависящем от Framework и нацеливанием на переносимое время выполнения.

Приложение отлично работает на моем устройстве dev через IIS express, запустив app.exe и выполнив команду tnet app.dll.

Настройте его на нашем промежуточном IIS и не радуйтесь. Запуск app.exe работает как положено, но do tnet app.dll - нет. Вместо этого он сообщает мне

Сборка, указанная в манифесте зависимостей приложения (SmartDirectoryNG.deps. json), не найдена: пакет: 'Microsoft.Win32.Registry.AccessControl', версия: '4.7 .0 'path:' runtimes / win / lib / netstandard2.0 / Microsoft.Win32.Registry.AccessControl.dll '

Когда я публикую sh приложение для целевой win-x64, все работает просто отлично.

Мне жутко напомнили об аде перенаправления сборки в полном объеме. NET framework, но мне любопытно: почему он работает, когда я публикую sh для win-x64? Microsoft.Win32.Registry.AccessControl.dll, в конце концов, всегда присутствует в одном каталоге с app.exe и app.dll, и app.exe действительно его находит. Кажется, в переносном режиме, он не ищет зависимости в каталоге приложения.

Так чего мне здесь не хватает?

...