我正在尝试构建一个ASP.NET-Core 3.1 (netcoreapp3.1)应用程序,它依赖于使用MSBuild SDK "Microsoft.NET.Sdk.Razor"的.NET-Standard 2.0库。
这在Visual (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.NET.Sdk.Razor SDK引入Microsoft.CodeQuality.Analyzers 2.x的,这与ASP.NET-Core 3.1应用程序引入的ASP.NET-Core 3.1库有冲突。
问题:
#if NETCOREAPP3_1块的合适解决方案吗?发布于 2020-02-05 03:51:56
visual使用MSBuild构建解决方案文件,因此您可以尝试使用MSBuild %yoursolutionfile%构建解决方案,另一方面,dotnet build通常构建单个项目而不是解决方案。
要回答您的第二个问题,如果您确实发现您的依赖关系是必需的,并且在DotNetBuildfor3.1版本中是不能忽略的,那么多目标设置应该可以工作,您可以按照下面的链接构建多目标应用程序https://learn.microsoft.com/en-us/dotnet/core/tutorials/libraries#how-to-multitarget
发布于 2021-01-05 21:48:53
这是一个隐藏恼人消息的解决办法,但它实际上不会消除根本问题:
编辑.csproj并将8034 (CS8034) <NoWarn>添加到配置/平台<PropertyGroup>中,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<!-- ... -->
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<NoWarn>8034</NoWarn>
</PropertyGroup>
<!-- ... -->
</Project>发布于 2021-11-19 15:17:40
半相关的,但这个问题是一个最高的搜索结果的错误CS8034,所以我想留下一个答案给其他人。在我的例子中,我们在不同的分析器中遇到了错误:
CS8034: Unable to load Analyzer assembly C:\...\.nuget\packages\strawberryshake.codegeneration.csharp.analyzers\12.0.1\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.dll
我们在一个由StrawberryShake 3.1SDK构建的.NetStandard2.0项目上安装了.Net。然而,StrawberryShake使用.Net 5发布的Roslyn生成器。依赖于StrawberryShake代码的csprojs下游无法编译,说程序集没有我们生成的任何名称空间/类型。我们升级到.Net 5来构建StrawberryShake项目,我们的问题就消失了。
https://stackoverflow.com/questions/60068294
复制相似问题