升级到netcore3.0-preview8后,Blazor Mono客户端出现错误

4
我已将我的Blazor客户端项目从预览7更新到预览8,使用Visual Studio 2019运行。
我按照此处详细说明的指示进行操作; .NET Core 3.0 Preview 8中的ASP.NET Core和Blazor更新 然而,在构建解决方案时出现以下错误;

IL Linker 5> 5>出现致命错误:Mono.Linker.Steps.XmlResolutionException: 无法处理XML描述: ---> Mono.Cecil.AssemblyResolutionException: 无法解析程序集:'Microsoft.AspNetCore.Mvc.Core,版本=3.0.0.0,Culture=neutral, PublicKeyToken=adb9793829ddae60' ---> Mono.Cecil.AssemblyResolutionException: 无法解析程序集:'Microsoft.AspNetCore.Mvc.Core,版本=3.0.0.0,Culture=neutral, PublicKeyToken=adb9793829ddae60' 5> at Mono.Linker.DirectoryAssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters) 5> at Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference name, ReaderParameters parameters) 5> at Mono.Linker.LinkContext.Resolve(IMetadataScope scope) 5> --- 内部异常堆栈跟踪的结尾 --- 5> at Mono.Linker.LinkContext.Resolve(IMetadataScope scope) 5> at Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition assembly) 5> at Mono.Linker.Steps.ResolveFromXmlStep.ProcessAssemblies(LinkContext context, XPathNodeIterator iterator) 5> at Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> --- 内部异常堆栈跟踪的结尾 --- 5> at Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> at Mono.Linker.Steps.BaseStep.Process(LinkContext context) 5> at Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep step) 5>
at Mono.Linker.Pipeline.Process(LinkContext context) 5> at Mono.Linker.Driver.Run(ILogger customLogger) 5> at Mono.Linker.Driver.Execute(String[] args, ILogger customLogger) 5>
at Mono.Linker.Driver.Main(String[] args) 5>C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.build\3.0.0-preview8.19405.7\targets\Blazor.MonoRuntime.targets(441,5): error MSB3073: 命令“dotnet "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../../tools/illink/illink.dll" -l none --disable-opt unreachablebodies --verbose --strip-security true --exclude-feature com --exclude-feature sre -v false -c link -u link -b true -d "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../../tools/mono/bcl/" -d "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../../tools/mono/bcl/Facades/" -o "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\blazor\linker/" -x "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.build\3.0.0-preview8.19405.7\targets\BuiltInBclLinkerDescriptor.xml" -x "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\blazor\linker.descriptor.xml" -a "C:\Users\matt.nuget\packages\blazored.localstorage\2.0.12\lib\netstandard2.0\Blazored.LocalStorage.dll" -a "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor\3.0.0-preview8.19405.7\lib\netstandard2.0\Microsoft.AspNetCore.Blazor.dll"

Blazor客户端项目引用的唯一其他项目是共享项目,该项目引用了.Net Standard 2.1。在Blazor客户端项目的依赖项中,我列出了以下内容->分析器。

Blazor Client Project Dependencies Analyzers

最后我的.csproj文件是这样的:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <OutputType>Exe</OutputType>
    <LangVersion>7.3</LangVersion>
    <RazorLangVersion>3.0</RazorLangVersion>
  </PropertyGroup>

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

  <ItemGroup>
    <PackageReference Include="Blazored.LocalStorage" Version="2.0.12" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor" Version="3.0.0-preview8.19405.7" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="3.0.0-preview8.19405.7" PrivateAssets="all" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.0.0-preview8.19405.7" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3-beta1" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\OakfieldLeasing.Blazor.Shared\OakfieldLeasing.Blazor.Shared.csproj" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="wwwroot\images\" />
  </ItemGroup>

</Project>

我还尝试过使用Microsoft.AspNetCore.NewtonsoftJson Nuget包替换Newtonsoft.Json,但这似乎没有什么区别。
请问有人知道是什么原因引起的吗?
1个回答

2
该问题源于错误地阅读了升级博客和文档。
这里的博客 ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 8 反过来又引用了Steve Sanderson的迁移步骤; Migrate from ASP.NET Core 2.2 to 3.0 这是为了从2.2迁移到3.0而编写的,其中将.csproj更改为<TargetFramework>netcoreapp3.0</TargetFramework> 我错误地将其应用于客户端项目,但这是无效的,因为Mono WebAssembly运行为netstandard2.0,而不是netcoreapp3.0。
将.csproj还原为netstandard2.0即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接