Сборка, указанная в манифесте зависимостей приложения, не найдена - PullRequest
1 голос
/ 28 мая 2019

Итак, у меня есть веб-приложение .NET Core 2.2.Я добавил в нее библиотеку EPPlus, и теперь, когда она выпускается в Azure (служба приложений), она не запускается, и я получаю сообщение об ошибке:

HTTP Error 502.5 - ANCM Out-Of-Process Startup Failure

Я сузил это, запустив консоль в Azure.и команда: "dotnet my.project.dll" - и получила фактическую ошибку:

Сборка, указанная в манифесте зависимостей приложения (my.project.deps.json), не найдена: пакет: 'Microsoft.Win32.SystemEvents', версия: '4.5.0' путь: 'runtimes / win / lib / netcoreapp2.0 / Microsoft.Win32.SystemEvents.dll'

Microsoft.Win32.SystemEvents.dll присутствует в основной папке wwwroot, в которой развернуто приложение.Но вся папка runtimes / win / libs /, которую я не думаю, существует вообще.

В файлах my.project.deps.json есть раздел, который выглядит следующим образом:

"Microsoft.Win32.SystemEvents/4.5.0": {
    "dependencies": {
      "Microsoft.NETCore.Platforms": "2.2.0"
    },
    "runtime": {
      "lib/netstandard2.0/Microsoft.Win32.SystemEvents.dll": {
        "assemblyVersion": "4.0.0.0",
        "fileVersion": "4.6.26515.6"
      }
    },
    "runtimeTargets": {
      "runtimes/win/lib/netcoreapp2.0/Microsoft.Win32.SystemEvents.dll": {
        "rid": "win",
        "assetType": "runtime",
        "assemblyVersion": "4.0.0.0",
        "fileVersion": "4.6.26515.6"
      }
    }
  }

Если я удаляю весь раздел «runtimeTargets», то приложение работает!(Ну, я должен сделать то же самое и для еще нескольких DLL: System.Drawing.Common и System.Security.Cryptography.Pkcs)

Но файл полностью обновляется всякий раз, когда он публикуется и выпускается - такэто не жизнеспособное решение.Я также не знаю, что делает этот раздел файла.Может быть важно оставить это в покое. Хотя все это работает, поэтому это не может быть настолько жизненно важным ...

Он построен и опубликован через TeamCity - я не эксперт в этом процессе, но я думаю,выполняемая команда сводится к следующему:

dotnet publish my.proj.csproj --configuration RELEASE --no-restore --no-build

Другие попытки: false не дали результата

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 13 июня 2019

Как оказалось, это была моя вина: (

Team City был создан пакет NuGet из опубликованного вывода. Но папка / runtimes не была включена в пакет, поэтому никогда не выпускалась как часть сайта.

Я отредактировал файл nuspec, чтобы включить его / время выполнения, и все работает нормально.

...