NuGet エラー NU1019

シナリオ

プロジェクト '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>