作为我的解决方案构建的一部分,我想将所有“内容”文件(asp?x 等)复制到另一个文件夹。由于这些在项目中被如此清楚地标记,我认为必须有一种简单的方法来复制这些,而不是用 xcopy 编写我自己的构建后步骤。
不幸的是,我一直无法弄清楚这一点 - 这个 msbuild 的东西与我的大脑不兼容。
我只想要一步
但无法弄清楚要使用的语法。
Bat 文件语法建议不能回答这个问题 - 只有纯 msbuild 解决方案适用
谢谢,
每
最佳答案
您可以通过以下方式轻松做到这一点:
<PropertyGroup>
<DestFolder>..\Copy\</DestFolder>
</PropertyGroup>
<Target Name="CopyContentFiles">
<Copy SourceFiles="@(Content)"
DestinationFiles="@(Content->'$(DestFolder)%(RelativeDir)%(Filename)%(Extension)')"/>
</Target>
如果您想将此作为构建后步骤执行,那么您只需添加 AfterTargets="Build"例如:
<PropertyGroup>
<DestFolder>..\Copy\</DestFolder>
</PropertyGroup>
<Target Name="CopyContentFiles" AfterTargets="Build">
<Copy SourceFiles="@(Content)"
DestinationFiles="@(Content->'$(DestFolder)%(RelativeDir)%(Filename)%(Extension)')"/>
</Target>
关于msbuild - 如何让 MSBuild 将所有标记为 Content 的文件复制到一个文件夹中,同时保留文件夹结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7643615/