如何在MSBuild中包含被排除的文件类型

11

目前,MSBuild未将扩展名为.manifest的文件复制到我的构建发布文件夹中。我已经添加了命令来显式复制该文件,但是否有配置标志可以设置以包含.manifest文件?

1个回答

16
您可以将AllowedReferenceRelatedFileExtensions属性传递给您的构建。属性的值应该是一个分号分隔的文件扩展名列表。来自Microsoft.Common.targets
<!--
These are the extensions that reference resolution will consider when looking for files related
to resolved references.  Add new extensions here if you want to add new file types to consider.
-->
<AllowedReferenceRelatedFileExtensions Condition=" '$(AllowedReferenceRelatedFileExtensions)' == '' ">
    .pdb;
    .xml
</AllowedReferenceRelatedFileExtensions>

无法向列表中添加值。您只能提供整个列表,因此请确保包含默认值,例如:

MSBuild.exe MyProject.csproj /t:build "/p:AllowedReferenceRelatedFileExtensions=.pdb;.xml;.manifest"

1
我在我的构建脚本和.csproj文件中的PropertyGroup元素下添加了AllowedReferenceRelatedFileExtensions元素,并没有看到这些文件被复制(我通过TFS运行自动化构建)。这是否假定这些文件是项目的输出(即bin文件夹)?如果是这样,您知道我需要做什么才能让我的自动化构建复制不是项目输出的文件吗? - digita1-anal0g
@JM 是的。MSBuild只会获取您项目的obj输出目录中的文件。如果您的.manifest文件不在输出目录中,您可能需要将后期构建目标添加到.csproj文件中。 - Aaron Jensen
1
顺便提一下,你可以向列表中添加值: <AllowedReferenceRelatedFileExtensions>$(AllowedReferenceRelatedFileExtensions);.manifest</AllowedReferenceRelatedFileExtensions> 这应该能解决问题。 - fourpastmidnight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接