我正在尝试构建一个依赖于NuGet库的ASP.NET-Core 3.1
(netcoreapp3.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
应用程序引入的库冲突。
有没有一种方法可以像Visual Studio一样通过命令行来构建我的应用程序?
是在我的库中使用多目标和#if NETCOREAPP3_1
块的正确解决方案吗?
Visual Studio使用MSBuild来构建您的解决方案文件,因此,您可以尝试MSBuild %yoursolutionfile%
来构建您的解决方案,另一方面,dotnet build
通常只构建一个项目而不是解决方案。
回答您的第二个问题,如果您确实发现您的依赖关系是必需的,并且在3.1版的dotnet构建中不能被忽略,是的,多目标编译应该可以工作,您可以单击此链接来构建多目标应用程序https://docs.microsoft.com/en-us/dotnet/core/tutorials/libraries#how-to-multitarget] >