У нас есть непрерывный WebJob, написанный на .NET Core 2.x и работающий в течение последних нескольких недель.Недавно кто-то внес некоторые изменения в этот WebJob и принес сторонний пакет NuGet.Теперь я не могу запустить WebJob, потому что он не может найти одну из зависимостей сторонних библиотек.
Это сообщение об ошибке:
D: \ local \ Temp\ jobs \ непрерывный \ Temp1 \ oitdncff.sfg> dotnet Temp1.dll
Ошибка:
Не найдена сборка, указанная в манифесте зависимостей приложения (Temp1.deps.json):
пакет: 'Система.Drawing.Common ', версия:' 4.5.0-preview1-25914-04 '
путь:' runtimes / win / lib / netcoreapp2.0 / System.Drawing.Common.dll '
Я пробовал несколько вещей, которые нашел во время поиска этой проблемы.Вот PropertyGroup и ItemGroup (пакеты NuGet) из файла csproj:
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<ApplicationIcon />
<StartupObject>Temp1.Program</StartupObject>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<LangVersion>latest</LangVersion>
<Version>1.0.0.0</Version>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
<PackageReference Include="AsyncEnumerator" Version="2.1.0" />
<PackageReference Include="EPPlus.Core" Version="1.5.4" />
<PackageReference Include="Microsoft.ApplicationInsights" Version="2.5.1" />
<PackageReference Include="Microsoft.ApplicationInsights.DependencyCollector" Version="2.5.1" />
<PackageReference Include="Microsoft.Azure.ServiceBus" Version="2.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs" Version="3.0.0-beta4" />
<PackageReference Include="Microsoft.Azure.WebJobs.Logging.ApplicationInsights" Version="3.0.0-beta4" />
<PackageReference Include="Microsoft.Azure.WebJobs.ServiceBus" Version="3.0.0-beta4" />
<PackageReference Include="Microsoft.Extensions.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Configuration" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="2.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
Для предложений в Интернете я добавил строку
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
и
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
Рассматриваемый пакет, имеющий зависимость: EPPlus.Core
Я подтвердил, что библиотека System.Drawing.Common
существует в папке приложения в нашем веб-приложении Azure, нокогда WebJob запускается, он игнорирует, что файл находится там и ищет в средах выполнения (GAC) и не работает.
ОБНОВЛЕНИЕ: Я понял, что пакет EPPlus.core не был официальнымпоэтому переключился на официальный пакет, надеясь, что это устранит ошибку.Та же ошибка, но новая версия System.Drawing.Common version: 4.5.0-preview1-26216-02
Я вручную добавил пакет NuGet для System.Drawing.Common version: 4.5.0-preview2-26406-04
в проект, это удалило первоначальную ошибку, но затем я начал получать ошибку, которую Microsoft.Win32.SystemEvents version: 4.5.0-preview2-26406-04
не смогбыть найденным.Эта библиотека зависит от System.Drawing.Common
.
Я попытался сделать то же самое, что и выше, и добавил пакет NuGet для Microsoft.Win32.SystemEvents version: 4.5.0-preview2-26406-04
непосредственно в проект, но на этот раз ошибка не исчезла.
ДАЛЬНЕЙШЕ ОБНОВЛЕНИЕ: После поиска, я наткнулся на сообщение здесь , в котором говорилось о публикации , а затем заархивировал опубликованный каталог и загрузил zip.Это действительно сработало, ошибка, о которой идет речь, исчезла, но это не совсем решение.Мы используем VSTS в качестве нашей системы репо и нашего CI / CD.У меня есть настройка сборки, чтобы сделать публикацию, а затем скопировать файлы.WebJob выдает ошибку при развертывании через этот процесс.