c# - 更新到 netcore3.0-preview8 后 Blazor Mono 客户端错误

标签 c# asp.net-core mono blazor-client-side

我已将我的 Blazor 客户端项目项目从预览版 7 更新到预览版 8,使用 Visual Studio 2019 运行。

我已按照此处详述的说明进行操作;

ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 8

但是,当我构建解决方案时出现以下错误;

Fatal error in IL Linker 5> 5>Unhandled Exception: Mono.Linker.Steps.XmlResolutionException: Failed to process XML description: ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.AspNetCore.Mvc.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.AspNetCore.Mvc.Core, Version=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> --- End of inner exception stack trace --- 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> --- End of inner exception stack trace --- 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: The command "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" -a "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.httpclient\3.0.0-preview8.19405.7\lib\netstandard2.0\Microsoft.AspNetCore.Blazor.HttpClient.dll" -a "C:\Users\matt.nuget\packages\mono.webassembly.interop\3.0.0-preview8.19405.4\lib\netstandard2.0\Mono.WebAssembly.Interop.dll" -a "C:\Users\matt.nuget\packages\newtonsoft.json\12.0.3-beta1\lib\netstandard2.0\Newtonsoft.Json.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Shared\bin\Debug\netstandard2.1\OakfieldLeasing.Blazor.Shared.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\OakfieldLeasing.Blazor.Client.dll"" exited with code -532462766.

Blazor 客户端项目引用的唯一其他项目是引用 .Net Standard 2.1 的共享项目。

我在我的 dependencies -> Blazor Client 项目的分析器中列出了以下内容。

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,但这似乎没有什么不同。

请问有人知道是什么原因造成的吗?

最佳答案

问题是由于误读了升级博客和文档。

博客在这里

ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 8

这里依次引用Steve Sandersons的迁移步骤;

Migrate from ASP.NET Core 2.2 to 3.0

用于从 2.2 移植到 3.0,并引用 aslter .csproj 到 <TargetFramework>netcoreapp3.0</TargetFramework>

我对客户项目做错了。这是无效的,因为 Mono WebAssembly 作为 netstandard2.0 运行,而不是 netcoreapp3.0。

将 .csproj 还原为 netstandard2.0解决了这个问题。

关于c# - 更新到 netcore3.0-preview8 后 Blazor Mono 客户端错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57626013/

相关文章:

c# - 是否可以从 Stripe API 获取计划的订阅者数量?

c# - 如何在 ASP.NET Core 中定义和使用不同的用户类型

c# - 单声道版本困惑

asp.net-mvc - Linux Mono 上的 SparkView 引擎

c# - 使用 Mono Compiler/创建一个新的同时仍然输出 Windows EXE?

c# - 扩展方法不可见

c# - WPF 编码 UI : ArgumentException when getting ColumnHeaders on a WpfTable if a column is collapsed

C# CompilerParameters.OutputAssembly 导致应用程序重新启动

asp.net-mvc - NET Core 3.1 MVC 授权/身份验证,使用在单独的 Net Core 3.1 Web Api 中从外部获取的 token (JWT)

c# - 在 Asp Core 中将 IFormFile 转换为图像