Skip to main content
 首页 » 编程设计

visual-studio之如何防止在 Release模式构建中复制 XML 文档文件

2024年02月25日12zhengyun_ustc

我有一个 Visual Studio 2010 项目,它引用了一些第三方组件。它们的程序集附有 XML 文档文件,这对我们(并且只有我们)开发人员有用。每当构建项目时(无论是在 Debug模式还是 Release模式下),这些 XML 文件都会复制到构建目录。

我似乎找不到设置或开关来禁用将这些 XML 文件复制到构建目录,无论是在 Visual Studio 中还是通过 MSBuild。构建后脚本可能是一种选择,但味道很臭。有任何想法吗?谢谢。

请您参考如下方法:

当您构建项目时,.xml/.pdb 文件是通过 ResolveAssemblyReference 任务收集的。当调用 ResolveAssemblyReference 时,它​​会传递相关文件的文件扩展名列表。该文件扩展名列表在 MSBuild 属性 AllowedReferenceRelatedFileExtensions 中捕获。默认情况下,该列表将包含“.pdb;.xml”。

如果您想排除所有相关引用文件被拾取,则只需将属性值覆盖为相关文件没有扩展名的值即可。例如,您可以将 AllowedReferenceRelatedFileExtensions 设置为“-”。

您还可以自定义返回的文件列表。如果您只想查找 .pdb 文件,则需要传入 AllowedReferenceRelatedFileExtensions=".pdb"。在这种情况下,任何在 .dll/.exe 旁边有 .pdb 文件的引用也将被复制。您还可以使用它来复制其他可能不以 .pdb/.xml 结尾的相关文件。例如,如果您有一个名为 MyAssembly.dll 的引用程序集,并且在同一文件夹中存在 MyAssembly.pdb 和 MyAssembly.foo 如果您设置 AllowedReferenceRelatedFileExtensions=".pdb;.foo" 则 . pdb 和 .foo 文件将被复制到输出目录。