【发布时间】: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 团队可能决定删除它们,而不是留下半生不熟的功能,尤其是在开发停止的情况下
标签: visual-studio-2022 c#-10.0