如何在 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>

到项目文件中的&lt;PropertyGroup&gt; 元素中。

第二步

现在上面已经确认了:你试过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 2019

如何在 Visual Studio 2022 中设置 NUnit?

如何使用 Visual Studio 2022 注册 32 位 COM 互操作

如何激活 C# 10 功能 Visual Studio 2022

如何在调试构建期间使 Visual Studio (2019/2022) 链接到正常的运行时库?

如何在 Visual Studio 2022 C# 编辑器中取消加粗静态方法?