Nuget 排除資源文件輸出

上一篇《Nuget 輸出資源文件 - 唐宋元明清2188 - 博客園 (cnblogs.com)》有介紹如何輸出Nuget中資源文件

團隊小夥伴說,組件附帶的資源文件太大了,有些場景引用不需要輸出。

那如何針對項目上的引用,設置Nuget包不輸出資源文件?

如下面截圖所示,Nuget包有.pakcages文件夾以及文件隨編譯輸出。

一 設置ExcludeAssets

在PackageReference項,添加屬性ExcludeAssets

1     <ItemGroup>
2         <PackageReference Include="NugetContentFiles" Version="1.0.18" ExcludeAssets="contentFiles"/>
3     </ItemGroup>

這裏是排除內容輸出的文件。

不同資源文件輸出方式,要設置的方式不一樣。有些設置輸出在lib文件夾,有些設置在自定義文件夾。具體的ExcludeAssets使用,詳見 項目文件中的 NuGet PackageReference | Microsoft Learn

值得注意的是,ExcludeAssets只能設置枚舉項,不能通過*號等匹配文件夾/文件。

二 AfterBuild編譯後刪除

一個Nuget中有多類資源文件,但只想輸出/保留一類資源文件時,上面的方案就不適合了。

熟悉使用targets後,我們能在編譯前後做很多事情。這裏我們可以在編譯後,刪除多餘的資源文件,相當於Nuget未輸出相應文件。

1     <Target Name="AfterBuildDelete" AfterTargets="AfterBuild">
2         <RemoveDir Directories="$(OutputPath).packages"/>
3         <Delete Files="$(OutputPath)vcomp140d.dll" TreatErrorsAsWarnings="True"/>
4     </Target>

上面展示了,刪除.packages文件夾以及同一層級的vcomp140d.dll文件。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章