移除 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>
- 該 Target 會在每次建置後執行,並移除所有語系資料夾中不必要的
.mui檔案,除了zh-TW語系的檔案。 RemovingFiles會包含所有的.mui檔案,除了zh-TW語系的檔案。RemovingFolders會包含所有的資料夾路徑。- 最後使用
RemoveDir刪除這些資料夾。
這樣就可以在每次建置後自動清理不必要的語系資料夾了。