首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用.NET构建ASP.NET-Core 3.1标准2.0项目会导致冲突的Microsoft.AspNetCore.Mvc.Analyzers程序集

用.NET构建ASP.NET-Core 3.1标准2.0项目会导致冲突的Microsoft.AspNetCore.Mvc.Analyzers程序集
EN

Stack Overflow用户
提问于 2020-02-05 02:39:57
回答 3查看 6.4K关注 0票数 11

我正在尝试构建一个ASP.NET-Core 3.1 (netcoreapp3.1)应用程序,它依赖于使用MSBuild SDK "Microsoft.NET.Sdk.Razor".NET-Standard 2.0库。

这在Visual (2019)中生成和运行良好,但是当我运行dotnet build时,会得到以下错误:

代码语言:javascript
复制
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库有冲突。

问题:

  1. 是否有一种方法可以通过命令行以Visual的方式构建我的应用程序?
  2. 是在我的库中使用多目标和#if NETCOREAPP3_1块的合适解决方案吗?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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

票数 3
EN

Stack Overflow用户

发布于 2021-01-05 21:48:53

这是一个隐藏恼人消息的解决办法,但它实际上不会消除根本问题:

编辑.csproj并将8034 (CS8034) <NoWarn>添加到配置/平台<PropertyGroup>中,如下所示:

代码语言:javascript
复制
<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <!-- ... -->
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <NoWarn>8034</NoWarn>
  </PropertyGroup>

  <!-- ... -->
</Project>
票数 3
EN

Stack Overflow用户

发布于 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项目,我们的问题就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60068294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档