シナリオ
プロジェクト 'MyProject' には、許可されていない文字を含む TargetFramework 'net10.0/benchmark' が含まれています。 TargetFramework 名には ASCII 文字のみを含める必要があり、パス区切り記号を含めてはなりません。
問題点
プロジェクト ファイルには、許可されていない文字を含む TargetFramework または TargetFrameworks 値があります。
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>