c# - 如何在 Blazor WebAssembly 项目中使用 C# 9?
问题描述
我在 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 请求处理程序加载失败)
解决方案
如果您需要将 Blazor WebAssembly 项目迁移到 .NET 5,请查看https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-5.0&tabs=视觉工作室#update-blazor-webassembly-projects
推荐阅读
- python - 带有命名空间的 XML 到 Pandas DF - Python
- c - c - 只有当所有孩子都被终止时,waitpid() 和 co 才检测到孩子的终止吗?
- sql - 使用字符串列旋转 SQL 表的语法错误
- sql - Upsert 查询未更新 postgres 中的记录
- c++ - 如何更改 unit_test/修复纯函数错误
- mysql - 如何在 SQL 中连接数据库中的两个表?
- excel - 更改参考
- python - 使用 selenium 在 Python 中使用安全令牌而不是密码
- sql-server - 在链接的 SQL Server 上运行 Oracle DB 函数时出错
- sql - 以开头的 PowerShell ISE 标识符太长