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>
添加回答
举报