asp.net-core - 升级到 .net core 3.1 preview4 后代码分析器生成错误

标签 asp.net-core blazor-client-side

我有一个 Blazor webassembly 项目(托管),我刚刚尝试将其升级到 .net core 3.1 的发布版本。为此,我已将 VS 2019 预览版升级到 16.5 预览版 1。我已将项目中的所有包升级到 3.1.0-preview4.19579.2。我还将客户端和共享项目更新为 .net 标准 2.1 并安装了最新的模板(我认为)。

当我尝试构建我的解决方案时,我现在收到此错误,似乎在某处显示了重复的代码分析资源文件:

Severity    Code    Description Project File    Line    Suppression State
Error   MSB4018 The "ResolveBlazorRuntimeDependencies" task failed unexpectedly.
System.InvalidOperationException: Multiple assemblies found with the same assembly name 'Microsoft.CodeAnalysis.resources':
Microsoft.CodeAnalysis.resources
C:\Users\NickWhymark\.nuget\packages\microsoft.codeanalysis.common\3.3.1\lib\netstandard2.0\de\Microsoft.CodeAnalysis.resources.dll
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.<ResolveRuntimeDependenciesCore>g__CreateAssemblyLookup|17_1(IEnumerable`1 assemblyPaths)
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.ResolveRuntimeDependenciesCore(String entryPoint, IEnumerable`1 applicationDependencies, IEnumerable`1 monoBclAssemblies)
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() Test.Blazor.Client  C:\Users\myuser\.nuget\packages\microsoft.aspnetcore.blazor.build\3.1.0-preview4.19579.2\targets\Blazor.MonoRuntime.targets 252 

错误似乎出现在 Web 程序集(客户端)项目中。我在其中看不到任何重复的分析器。但是在服务器项目中,我注意到了 Microsoft.AspNetCore.Components.Analyzers.dll 的副本。一个来自 Program Files 中的 .Net Core 3.1 SDK 文件夹,另一个来自 .nuget/packages。请注意,我没有明确添加 nuget,它只是“出现”了。

虽然奇怪,但我认为服务器项目中重复的分析器不一定是原因,因为我创建了一个新的 Blazor webassembly 项目,它也有重复项但编译正确。

我已尝试清理/重建、重新启动 VS、删除 bin/obj 文件夹,但问题仍然存在。

其他可能相关的要点:

  • 我正在使用 Telerik Blazor 控件
  • 我安装了 VS2019 的发行版和预览版。我也升级到 16.4.

非常感谢任何帮助!

最佳答案

我对 my project 的更新遇到了同样的问题.

Severity    Code    Description Project File    Line    Suppression State
Error   MSB4018 The "ResolveBlazorRuntimeDependencies" task failed unexpectedly.
System.InvalidOperationException: Multiple assemblies found with the same assembly name 'Microsoft.CodeAnalysis.resources':
Microsoft.CodeAnalysis.resources
C:\Users\SARI\.nuget\packages\microsoft.codeanalysis.common\3.4.0\lib\netstandard2.0\de\Microsoft.CodeAnalysis.resources.dll
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.<ResolveRuntimeDependenciesCore>g__CreateAssemblyLookup|17_1(IEnumerable`1 assemblyPaths)
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.ResolveRuntimeDependenciesCore(String entryPoint, IEnumerable`1 applicationDependencies, IEnumerable`1 monoBclAssemblies)
   at Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BlazorDemo  C:\Users\SARI\.nuget\packages\microsoft.aspnetcore.blazor.build\3.1.0-preview4.19579.2\targets\Blazor.MonoRuntime.targets   252

删除 <BlazorLinkOnBuild>false</BlazorLinkOnBuild>从项目文件 (.csproj) 解决了这个问题。

编辑:找到另一个 solution .将其添加到项目文件中

<Target Name="_RemoveSatelliteAssemblies" BeforeTargets="_ResolveBlazorRuntimeDependencies">
  <ItemGroup>
    <_BlazorDependencyInput Remove="@(_BlazorDependencyInput->WithMetadataValue('AssetType', 'resources'))"  />
  </ItemGroup>
</Target>

关于asp.net-core - 升级到 .net core 3.1 preview4 后代码分析器生成错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59180175/

相关文章:

c# - 手动将 MVC 操作重定向到身份服务器 4 登录页面

c# - IdentityServer4 - 根据 client_id 使用不同的用户存储

c# - onclick 方法在 Blazor 服务器端 Razor 组件中不起作用

c# - 所有 Blazor 页面的公共(public)属性?

visual-studio - 发布到 Azure 不会更新 App_Data 中的文件

asp.net-core - 有没有办法通过 MVC 应用程序中的特定 Controller 操作来提供 Blazor 应用程序?

blazor - Blazor WebAssembly 会使用 Mono 还是 .Net Core 3.1?

blazor - 如何将 blazor 客户端/服务器应用程序发布到 Linux Web 服务器?无权访问 ssh 并且 dotnet publish 不提供 index.html

async-await - Blazor WebAssembly : How to get UI to update during long running, 非异步进程

Blazor WASM 在未通过身份验证时重定向到登录 - 不显示布局