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>