【问题标题】:How to use C# 9 in Blazor WebAssembly project?如何在 Blazor WebAssembly 项目中使用 C# 9?
【发布时间】:2021-02-26 11:29:02
【问题描述】:

我在 Visual Studio 中创建了一个新的 Blazor WebAssembly 项目,默认情况下,它以 .NET Standard 2.1 为目标,因此使用 C# 8。

我还编写了一个为 .NET 5 编写的库,并在其中使用了 C# 9。

如何在我的 Blazor 项目中使用这个库?我无法在 .NET Standard 2.1 项目中引用 .NET 5 库。

  • 当我将库的目标框架更改为 .NET Standard 2.1 时,我无法在库项目中使用 C# 9。当我将 csproj 中的 LangVersion 显式设置为 9.0 时,我的所有记录类型都会出现一些预定义类型 System.Runtime.CompilerServices.IsExternalInit 未定义的编译错误
  • 当我将 Blazor 项目的目标框架更改为 .NET 5 并引用 .NET 5 库时,它不再工作(启动失败并出现 HTTP 错误 500.33 - ANCM 请求处理程序加载失败)

【问题讨论】:

  • 您是否尝试更改 csproj 的 LangVersion 中的语言版本?见C# language versioning。 C# 版本和框架没那么紧。
  • FWIW 我认为在 C# 9 的任期内编写库还为时过早。除非它向后兼容 .NET Standard 2.1,否则你真的会限制你的受众。
  • 如果你多目标 .net 5.NET Standard 2.1 你可以使用 C# 9
  • 这里是MSDN上的相关链接docs.microsoft.com/en-us/dotnet/standard/…
  • Blazor 应该在 .NET 5 中开箱即用。这是使用 VS 16.8 创建默认 Blazor 应用程序项目时所得到的。我怀疑您的项目设置在这方面存在问题。

标签: c# .net blazor .net-5


【解决方案1】:
猜你喜欢
  • 2020-09-20
  • 2020-11-08
  • 2020-08-14
  • 2020-09-11
  • 1970-01-01
  • 2021-12-31
  • 2021-02-18
  • 2021-10-09
相关资源
最近更新 更多