防止引用的程序集PDB和XML文件复制到输出
我有一个Visual Studio 2008 C#/ .NET 3.5项目,其中包含一个后期构建任务来压缩内容。 但是我发现我也在输出目录(和ZIP)中获取了引用程序集的.pdb(debug)和.xml(documentation)文件。
例如,如果MyProject.csproj引用YourAssembly.dll,并且在与DLL相同的目录中有YourAssembly.xml和YourAssembly.pdb文件,它们将显示在我的输出目录(和ZIP)中。
我可以在压缩时排除* .pdb,但是我不能排除* .xml文件,因为我有具有相同扩展名的部署文件。
有没有办法阻止项目复制引用的程序集PDB和XML文件?
我希望能够在主应用程序中添加和删除引用的程序集,同时避免需要维护我需要删除或排除的文件。
我挖通过Microsoft.Common.targets
寻找可以工作的东西,并找到AllowedReferenceRelatedFileExtensions
属性。 它默认为.pdb; .xml
.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>
您也可以通过命令行指定:
MsBuild.exe build.file /p:AllowedReferenceRelatedFileExtensions=none
您可以添加类似于del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"
的Post Build事件命令del "$(TargetDir)YourAssembly*.xml", "$(TargetDir)YourAssembly*.pdb"
上一篇: Preventing referenced assembly PDB and XML files copied to output