如何在 Visual Studio 2022 中使用 .NET 6 Preview Generic Math?
Posted
技术标签:
【中文标题】如何在 Visual Studio 2022 中使用 .NET 6 Preview Generic Math?【英文标题】:How to use .NET 6 Preview Generic Math in Visual Studio 2022? 【发布时间】:2021-12-20 16:43:24 【问题描述】:有几篇文章解释了通用数学的新 .NET 6 预览功能,通常基于这篇 Microsoft 文章:
https://devblogs.microsoft.com/dotnet/preview-features-in-net-6-generic-math/
在预览版和 Visual Studio 2022 的第一个版本中,这可以正常工作。但在 Visual Studio 2022 版本 17.0.3 和 17.0.4(当前版本)中,我根本无法编译它。
我实际上回到了 VS2022 版本 17.0.0 以确保我正确地遵循了文章中的步骤。代码编译得很好。升级到VS2022版本17.0.3,同一个项目构建失败,报错:
Error CS0246 The type or namespace name 'INumber<>' could not be found (are you missing a using directive or an assembly reference?)
有人有什么想法吗?我假设我必须对 csproj 文件进行进一步更改,但是有什么更改?
在 NuGet 包管理器中,我找到了将 System.Runtime.Experimental 升级到版本 6.0.0 的选项,这将我的 csproj 文件中的条目从:
<ItemGroup>
<PackageReference Include="System.Runtime.Experimental" Version="6.0.0-preview.7.21377.19" />
</ItemGroup>
到:
<ItemGroup>
<PackageReference Include="System.Runtime.Experimental" Version="6.0.0" />
</ItemGroup>
重新启动没有帮助。清洁溶液无济于事。我也没有在 Visual Studio 2022 的发行说明中看到任何对我有帮助的内容。
完整的 csproj 文件,供参考,已经包含您需要的额外位,是:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnablePreviewFeatures>True</EnablePreviewFeatures>
<LangVersion>preview</LangVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Runtime.Experimental" Version="6.0.0" />
</ItemGroup>
</Project>
【问题讨论】:
有一个关于设计问题的very long thread,被推回.net7,但还没有里程碑。 这些功能都清楚地标明了Preview
。不能保证它们会从一个 VS 版本工作到下一个版本,尤其是在它们被推迟的情况下。 .NET 团队可能决定删除它们,而不是留下半生不熟的功能,尤其是在开发停止的情况下
【参考方案1】:
步骤 1
正如您在问题顶部链接的博客文章中所述:添加
<EnablePreviewFeatures>true</EnablePreviewFeatures>
到项目文件中的<PropertyGroup>
元素中。
第二步
现在上面已经确认了:你试过VS2022的预览版(目前是V17.1 Preview 1.1)吗?
刚刚试过:没有。
第三步
请参阅Hans Passant's 对问题的评论:需要等待(或者您是否拥有正在构建的 .NET 7 的构建...)
【讨论】:
已经完成,需要在 Visual Studio 2022 版本 17.0.0 中编译。项目在 17.0.0 和 17.0.3 之间没有任何变化,但项目停止编译。 更新:看起来这将是等待它出现在私有构建之外的任何东西中......【参考方案2】:我在 VS2022 17.0.4 中遇到了同样的错误。现在,VS2022 17.1.0 Preview 1.1 似乎运行良好。
【讨论】:
以上是关于如何在 Visual Studio 2022 中使用 .NET 6 Preview Generic Math?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio 2022 中设置 NUnit?
如何使用 Visual Studio 2022 注册 32 位 COM 互操作
如何激活 C# 10 功能 Visual Studio 2022