Asp.net core 升级到.net core 3.1 preview4后,代码分析器出现生成错误
我有一个Blazor webassembly项目(托管),我刚刚尝试将其升级到.net core 3.1的发行版。为此,我已将VS2019预览版升级为16.5预览版1。我已将项目中的所有软件包升级到3.1.0-preview4.19579.2。我还将客户端和共享项目更新为.net标准2.1,并安装了最新的模板(我想) 当我尝试构建我的解决方案时,我现在遇到了这个错误,它似乎在某处显示了一个重复的代码分析资源文件:Asp.net core 升级到.net core 3.1 preview4后,代码分析器出现生成错误,asp.net-core,blazor-client-side,Asp.net Core,Blazor Client Side,我有一个Blazor webassembly项目(托管),我刚刚尝试将其升级到.net core 3.1的发行版。为此,我已将VS2019预览版升级为16.5预览版1。我已将项目中的所有软件包升级到3.1.0-preview4.19579.2。我还将客户端和共享项目更新为.net标准2.1,并安装了最新的模板(我想) 当我尝试构建我的解决方案时,我现在遇到了这个错误,它似乎在某处显示了一个重复的代码分析资源文件: Severity Code Description Project F
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
严重性代码描述项目文件行抑制状态
错误MSB4018“ResolveBlazorrentimeDependencies”任务意外失败。
System.InvalidOperationException:找到多个具有相同程序集名称“Microsoft.CodeAnalysis.resources”的程序集:
Microsoft.CodeAnalysis.resources
C:\Users\NickWhymark\.nuget\packages\microsoft.codealysis.common\3.3.1\lib\netstandard2.0\de\microsoft.codealysis.resources.dll
在Microsoft.AspNetCore.Blazor.Build.ResolveBlazorrentimeDependencies.g_uCreateSassemblyLookup | 17_1(IEnumerable`1 assemblyPath)
位于Microsoft.AspNetCore.Blazor.Build.ResolveBlazorrentimeDependencies.ResolveRuntimeDependenciesCore(字符串入口点、IEnumerable`1应用程序依赖项、IEnumerable`1单类)
在Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.Execute()中
位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder.d_u26.MoveNext()Test.Blazor.Client C:\Users\myuser\.nuget\packages\Microsoft.aspnetcore.Blazor.Build\3.1.0-preview4.19579.2\targets\Blazor.monoraruntime.targets 252
错误似乎在web程序集(客户端)项目中。我看不到任何重复的分析仪。但是在服务器项目中,我注意到了Microsoft.AspNetCore.Components.Analyzers.dll的副本。一个来自程序文件中的.Net Core 3.1 SDK文件夹,另一个来自.nuget/packages。注意,我没有明确添加nuget one,它只是“出现了”
虽然奇怪,但我不认为服务器项目中的重复分析器一定是原因,因为我创建了一个新的Blazor webassembly项目,该项目也有重复项,但编译正确
我尝试过清理/重建、重新启动VS、删除bin/obj文件夹,但问题仍然存在
可能相关的其他要点:
- 我用的是Telerik Blazor控制器
- 我已经安装了VS2019的发布版本以及预览版。我也升级到了 16.4
非常感谢任何帮助 我对的更新也有同样的问题
严重性代码描述项目文件行抑制状态
错误MSB4018“ResolveBlazorrentimeDependencies”任务意外失败。
System.InvalidOperationException:找到多个具有相同程序集名称“Microsoft.CodeAnalysis.resources”的程序集:
Microsoft.CodeAnalysis.resources
C:\Users\SARI\.nuget\packages\microsoft.codealysis.common\3.4.0\lib\netstandard2.0\de\microsoft.codealysis.resources.dll
在Microsoft.AspNetCore.Blazor.Build.ResolveBlazorrentimeDependencies.g_uCreateSassemblyLookup | 17_1(IEnumerable`1 assemblyPath)
位于Microsoft.AspNetCore.Blazor.Build.ResolveBlazorrentimeDependencies.ResolveRuntimeDependenciesCore(字符串入口点、IEnumerable`1应用程序依赖项、IEnumerable`1单类)
在Microsoft.AspNetCore.Blazor.Build.ResolveBlazorRuntimeDependencies.Execute()中
位于Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder.d_u26.MoveNext()BlazorDemo C:\Users\SARI\.nuget\packages\Microsoft.aspnetcore.blazor.Build\3.1.0-preview4.19579.2\targets\blazor.MonoRuntime.targets 252
从项目文件(.csproj)中删除false
修复了该问题
编辑:找到另一个。将其添加到项目文件中
<Target Name="_RemoveSatelliteAssemblies" BeforeTargets="_ResolveBlazorRuntimeDependencies">
<ItemGroup>
<_BlazorDependencyInput Remove="@(_BlazorDependencyInput->WithMetadataValue('AssetType', 'resources'))" />
</ItemGroup>
</Target>
看来
netcore3.1
、netstandard2.1
和blazor-wasm-3.1
库存在已知问题。对我来说,来自的解决方案奏效了:
解决方法是编辑主目录中的文件“.nuget\packages\microsoft.aspnetcore.blazor.build\3.1.0-preview4.19579.2\targets\blazor.monoraruntime.targets”,并更改:
到
问题是,如果用户名包含空格(如果您有一个名为和姓为的Windows帐户,这是默认-->例如Hans Meier),则链接器路径配置不正确,并且缺少引号。谢谢SARI,这对我也有效。Telerik的人建议我,我还必须添加一个Linker.xml文件,以防止链接器对Telerik控件过度攻击。他们现在已将此添加到入门指南中,以防它对某人有所帮助!我也有同样的错误。然而,这个解决方案对我没有帮助。删除
BlazorLinkOnBuild
语句后,我得到一个ILLink失败,退出代码1。在C:\Users\seppenner\.nuget\packages\microsoft.aspnetcore.blazor.build\3.1.0-preview4.19579.2\targets\blazor.monoraruntime.targets 204
。有什么想法吗?@Ted这个问题对你来说还存在吗?这应该在一段时间前就解决了…通过将Visual Studio更新为最新版本解决了此问题。没有其他的解决办法对我或我有效。
<Target Name="_RemoveSatelliteAssemblies" BeforeTargets="_ResolveBlazorRuntimeDependencies">
<ItemGroup>
<_BlazorDependencyInput Remove="@(_BlazorDependencyInput->WithMetadataValue('AssetType', 'resources'))" />
</ItemGroup>
</Target>