【笨問題】防止 .NET 編譯產生不需要的多語系資源檔
2 |
針對需要支援多語系的場合,.NET 標準做法是為各語系建立專屬資源檔,放入該語系的文字翻譯、專用圖示,Visual Studio 會將這些資源檔編譯成衛星組件(Satellite Assembly)。如此,執行時可依環境彈性載入,有專屬資源就用,沒有就用英文;開發時也可依需求逐步增加新語系,很方便。
但我一直有個困擾,當專案使用到支援多語系元件時,編譯資料夾就會生出一堆語系名稱資料夾,但我的網站沒有要服務歪果仁啊,冒出這麼多用不到的東西令人心煩。
之前遇到,我都很認命地手動刪檔,但想想不對,這太笨了,不像 .NET 的風格,應該有官方解法。
Yes! 在 .csproj 加上 SatelliteResourceLanguages,設定要包含的語系,這樣就行了! 可惡,我為什麼得過且過拖了這麼久?
Tips of how to prevent unnecessary resource files by SatelliteResourceLanguages setting.
Comments
# by 小雞
結果還是有en? 是預設得有的嗎
# by Jeffrey
to 小雞,程式庫預設語系一般是英文,大多不需要額外資源 dll,但如果程式將英文也拆出來放資源檔,就會出現 en 資料夾。