Сборка ASP. NET -Core 3.1 с. NET -Standard 2.0 приводит к конфликту сборок Microsoft.AspNetCore. Mvc .Analyzers - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать приложение ASP.NET-Core 3.1 (netcoreapp3.1), которое зависит от библиотеки NuGet .NET-Standard 2.0, использующей MSBuild SDK "Microsoft.NET.Sdk.Razor".

. нормально из Visual Studio (2019), но когда я запускаю dotnet build, я получаю следующую ошибку:

Build FAILED.

CSC : error CS8034: Unable to load Analyzer assembly 
 C:\Users\daniel\.nuget\packages\microsoft.aspnetcore.mvc.analyzers\2.2.0\analyzers\dotnet\cs\Microsoft.AspNetCore.Mvc.Analyzers.dll
 : Assembly with same name is already loaded [D:\git\myapp\src\myapp.App\myapp.App.csproj]
    0 Warning(s)
    1 Error(s)

Я предполагаю, что моя библиотека .NET-Standard 2.0 загружает Microsoft.CodeQuality.Analyzers 2.x через Microsoft.NET.Sdk.Razor SDK, и это противоречит тому, который извлекается приложением ASP.NET-Core 3.1.

Вопросы:

  1. Есть ли способ построить мое приложение с помощью команды таким же образом, как это делает Visual Studio?

  2. Является ли правильное решение для использования мультицелевого и #if NETCOREAPP3_1 блоков в моей библиотеке?

1 Ответ

1 голос
/ 05 февраля 2020

visual studio использует MSBuild для создания файла решения, поэтому вы можете попробовать MSBuild %yoursolutionfile% для построения решения, с другой стороны, dotnet build обычно создает один проект вместо решения.

для ответа Ваш второй вопрос: если вы обнаружите, что ваша зависимость требуется и не может быть проигнорирована в do tnet build для версии 3.1, да, многоцелевой compl ie должен работать, вы можете перейти по этой ссылке для создания многоцелевого приложения https://docs.microsoft.com/en-us/dotnet/core/tutorials/libraries#how -в-multitarget

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...