從 MSBuild 17.14 開始,預設不會再啟用自定義文化特性資源處理。 用戶必須明確選擇加入才能啟用這項功能。 這項變更可防止自動偵測與文化特性代碼相異的目錄所造成的非預期行為。
推出的版本
MSBuild 17.14
備註
由於這項變更會影響 MSBuild 的行為,因此會影響兩個支援的 .NET 版本:.NET 10 Preview 1 和 .NET 9.0.2。 自定義文化特性變更的透明支援是在 .NET SDK 9.0.200 中引進的,而選擇性啟用的變更則是在 .NET SDK 9.0.300 中完成。
先前的行為
先前,MSBuild 預設會將名稱類似文化特性代碼 (例如 en-US, fr-FR) 的目錄視為文化特性特定的資源目錄。 此行為有時會涉及不相關的目錄,例如以哈希值或技術名稱命名的目錄,從而導致在建置過程中納入非預期的資源組件。
新行為
預設會停用自定義文化特性資源處理。 若要開啟此功能,請將項目屬性 EnableCustomCulture 設定為 true。
若要從自訂文化特性處理中排除目錄,請使用屬性 CustomCultureExcludeDirectories 來指定以分號分隔的目錄名稱清單。
破壞性變更的類型
此變更為行為變更。
變更的原因
當目錄名稱與文化特性代碼相符時,自動偵測特定文化特性的資源目錄會導致無法預測的建置行為。 要求明確加入可確保更可預測的組建,並讓使用者更充分掌控資源處理。
建議的動作
如果您建置程式依賴自訂文化特性資源處理:
- 將項目屬性
EnableCustomCulture設定為true。 - 選擇性地使用
CustomCultureExcludeDirectories屬性來排除特定目錄,使其無法被視為文化特性資源。
受影響的 API
沒有。