NuGet 错误 NU1019

情景

项目“MyProject”包含一个 TargetFramework“net10.0/benchmark”,其中包含不允许的字符。 TargetFramework 名称必须仅包含 ASCII 字符,并且不能包含路径分隔符。

問题

项目文件具有包含TargetFrameworkTargetFrameworks不允许字符的值。 NuGet 不允许目标框架名称中的以下字符:

  • 路径分隔符/\):这些字符会中断资产文件格式,并且始终不允许。
  • 非 ASCII 字符:目标框架名称必须仅包含 ASCII 字符(值为 127 或更少的字符)。

此验证被限制在 SdkAnalysisLevel 属性后面:

  • SDK 分析级别 10.0.300 或更高版本:目标框架名称中的路径分隔符引发错误。 非 ASCII 字符引发警告。
  • SDK 分析级别 11.0.100 或更高版本:路径分隔符和非 ASCII 字符都引发错误。

解决方案

重命名项目文件中的目标框架值,以仅使用 ASCII 字符并删除任何路径分隔符。

例如,更改:

<PropertyGroup>
  <TargetFramework>net10.0/benchmark</TargetFramework>
</PropertyGroup>

对有效的目标框架名称:

<PropertyGroup>
  <TargetFramework>net10.0-benchmark</TargetFramework>
</PropertyGroup>