1 min read 
    中文   移除 WinUI3 專案建置後資料夾中的語系資料夾
在 WinUI3 專案建置後,relase 的資料夾會有一堆語系資料夾,但實際上都不會用到,最後才發現可以在 .csproj 檔案中新增一個 MSBuild 的 Target,在每次建置後自動移除不必要的語系資料夾。
  views
|  comments
 
 問題#
近期有使用 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- 該 Target 會在每次建置後執行,並移除所有語系資料夾中不必要的 
.mui檔案,除了zh-TW語系的檔案。 RemovingFiles會包含所有的.mui檔案,除了zh-TW語系的檔案。RemovingFolders會包含所有的資料夾路徑。- 最後使用 
RemoveDir刪除這些資料夾。 
這樣就可以在每次建置後自動清理不必要的語系資料夾了。