3 回答

TA貢獻1951條經驗 獲得超3個贊
您也可以通過命令行指定此名稱:
MsBuild.exe build.file /p:AllowedReferenceRelatedFileExtensions=none

TA貢獻1111條經驗 獲得超0個贊
我希望能夠在主應用程序中添加和刪除引用的程序集,同時避免維護需要刪除或排除的文件。
我通過Microsoft.Common.targets尋找可行的東西進行了挖掘,并找到了該AllowedReferenceRelatedFileExtensions物業。它默認為,.pdb; .xml因此我在項目文件中明確定義了它。要注意的是您需要一些東西(空格是不夠的),否則它將仍然使用默認值。
<Project ...>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
...
<AllowedReferenceRelatedFileExtensions>
<!-- Prevent default XML and PDB files copied to output in RELEASE.
Only *.allowedextension files will be included, which doesn't exist in my case.
-->
.allowedextension
</AllowedReferenceRelatedFileExtensions>
</PropertyGroup>

TA貢獻1963條經驗 獲得超6個贊
我對其他答案不太滿意,我終于想出了如何使用內置的“ Delete”命令在實現中執行此操作,顯然,您需要使用一種特定的方式來實現通配符,這 有點細微差別,這是您需要將所有內容放入“項目”標簽下的“ CSPROJ”(TargetDir是一個內置變量,自動包含在內):
<Target Name="RemoveFilesAfterBuild">
<ItemGroup>
<XMLFilesToDelete Include="$(TargetDir)\*.xml"/>
<PDBFilesToDelete Include="$(TargetDir)\*.pdb"/>
</ItemGroup>
<Delete Files="@(XMLFilesToDelete)" />
<Delete Files="@(PDBFilesToDelete)" />
</Target>
我在生成各種特定于語言的文件夾時也遇到了麻煩,如果您也遇到該問題,也可以刪除未使用的特定于語言的文件夾。我選擇僅在構建類型“發布”下觸發此操作:
<ItemGroup>
<FluentValidationExcludedCultures Include="be;cs;cs-CZ;da;de;es;fa;fi;fr;ja;it;ko;mk;nl;pl;pt;ru;sv;tr;uk;zh-CN;zh-CHS;zh-CHT">
<InProject>false</InProject>
</FluentValidationExcludedCultures>
</ItemGroup>
<Target Name="RemoveTranslationsAfterBuild" AfterTargets="AfterBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<RemoveDir Directories="@(FluentValidationExcludedCultures->'$(OutputPath)%(Filename)')" />
<ItemGroup>
<XMLFilesToDelete Include="$(TargetDir)\*.xml"/>
<PDBFilesToDelete Include="$(TargetDir)\*.pdb"/>
</ItemGroup>
<Delete Files="@(XMLFilesToDelete)" />
<Delete Files="@(PDBFilesToDelete)" />
</Target>
添加回答
舉報