防止引用的程序集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"

链接地址: http://www.djcxy.com/p/74557.html

上一篇: Preventing referenced assembly PDB and XML files copied to output

下一篇: Debugging a release version of a DLL (with PDB file)