NuGet 錯誤 NU1019

Scenario

專案「MyProject」包含一個 TargetFramework 的「net10.0/benchmark」,但字元不允許。 TargetFramework 名稱必須僅包含 ASCII 字元,且不得包含路徑分隔符。

Issue

你的專案檔案有一個 TargetFramework or 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>