使用.NET-Standard 2.0项目构建ASP.NET-Core 3.1导致Microsoft.AspNetCore.Mvc.Analyzers程序集冲突

问题描述 投票:0回答:1

我正在尝试构建一个依赖于NuGet库的ASP.NET-Core 3.1netcoreapp3.1)应用程序,该库是使用MSBuild SDK .NET-Standard 2.0"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 SDK引入Microsoft.NET.Sdk.Razor 2.x,这与ASP.NET-Core 3.1应用程序引入的库冲突。

问题:

  1. 有没有一种方法可以像Visual Studio一样通过命令行来构建我的应用程序?

  2. 是在我的库中使用多目标和#if NETCOREAPP3_1块的正确解决方案吗?

c# asp.net-core .net-core .net-standard-2.0 asp.net-core-3.1
1个回答
1
投票

Visual Studio使用MSBuild来构建您的解决方案文件,因此,您可以尝试MSBuild %yoursolutionfile%来构建您的解决方案,另一方面,dotnet build通常只构建一个项目而不是解决方案。

回答您的第二个问题,如果您确实发现您的依赖关系是必需的,并且在3.1版的dotnet构建中不能被忽略,是的,多目标编译应该可以工作,您可以单击此链接来构建多目标应用程序https://docs.microsoft.com/en-us/dotnet/core/tutorials/libraries#how-to-multitarget] >

© www.soinside.com 2019 - 2024. All rights reserved.