開發筆記 | Aiden Lin 林瑋杰

Back

移除 WinUI3 專案建置後資料夾中的語系資料夾移除 WinUI3 專案建置後資料夾中的語系資料夾

問題#

近期有使用 WinUI3 的專案來建置公司的桌面程式,發現每次建置後都會在 bin\Release\net8.0-windows10.0.26100.0\win10-x64 目錄下產生一堆語系資料夾

眾多的語系資料夾

也因為程式最後沒有再封裝成安裝檔,而是整包給其他人使用,所以打開資料夾就看到一堆語系資料夾,實在是有點煩。

為了解決這個問題,上網找了許久終於找到解決方法。可以在專案的 .csproj 檔案中新增一個 MSBuild 的 Target,來在每次建置後自動移除不必要的語系資料夾。

解決方法#

在專案的 .csproj 檔案中新增以下的 Target:

<Target Name="RemoveUnwantedCultures" AfterTargets="Build">
  <ItemGroup>
    <RemovingFiles Include="$(OutDir)*\*.mui" Exclude="$(OutDir)zh-TW\*.mui" />
    <RemovingFolders Include="@(RemovingFiles->'%(RootDir)%(Directory)')" />
  </ItemGroup>
  <RemoveDir Directories="@(RemovingFolders)" />
</Target>
xml
  1. 該 Target 會在每次建置後執行,並移除所有語系資料夾中不必要的 .mui 檔案,除了 zh-TW 語系的檔案。
  2. RemovingFiles 會包含所有的 .mui 檔案,除了 zh-TW 語系的檔案。
  3. RemovingFolders 會包含所有的資料夾路徑。
  4. 最後使用 RemoveDir 刪除這些資料夾。

這樣就可以在每次建置後自動清理不必要的語系資料夾了。

Comment seems to stuck. Try to refresh?✨