情景
项目“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>