MSBuild CopyTask:将同一文件复制到多个位置
有没有办法让 CopyTask 将同一文件复制到多个位置?
例如。我已经生成了 AssemblyInfo.cs 文件,并希望在构建之前将其复制到我的所有项目中。
Is there a way to get the CopyTask to copy the same file to multiple locations?
eg. I've generated an AssemblyInfo.cs file and want to copy it across to all my projects before building.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查看 RoboCopy 构建任务,它是社区构建任务库的一部分,您可以在此处找到该任务。 RoboCopy 可以将一个源文件复制到多个目的地。
附注:如果您在每个项目中都需要相同的信息,为什么不在解决方案级别使用一个 AssemblyInfo 文件并链接到项目中的该文件呢?查看我对此问题接受的答案:自动程序集版本号管理在VS2008中
Check out the RoboCopy build task which is part of the Community Build Tasks library which you can find here. RoboCopy can copy one source file to multiple destinations.
On a side note: why don't you use one AssemblyInfo file on solution level and link to that in your projects if you need the same information in every project? Check out my accepted answer on this question: Automatic assembly version number management in VS2008
好吧,也许我应该在寻求帮助之前尝试做我想做的事情:)
Right, well maybe I should attempt to do the things I want to do before asking for help :)
我需要将目录的内容复制到多个位置,这就是我想出的可行方法。因此,我将其发布在这里,以防其他人有类似的需求并像我一样遇到这个问题。
如果要将
AssemblyInfo.cs
复制到文件夹A
和B
,您需要设置属性Files="AssemblyInfo.cs"< /code> 和
PublishUrls="A;B"
使这项工作有效的是 CreateItem 任务中的额外元数据
AdditionalMetadata="RootDirectory=%(PublishUrls.FullPath)"
所以对于File
中找到的每个文件,它会为PublishUrls
中找到的每个项目创建 1 个条目。对于单个文件,写出 xml 的等效方法是:现在,如果您复制包含文件
1.txt
和2.txt
的文件夹的内容复制到A
和B
等效的 xml 为:I had a need to copy the contents of a directory to multiple locations, this is what I came up with that works. So I am posting it here ins case anyone else is in similar need and comes across this question like I did.
If you want to copy
AssemblyInfo.cs
to FoldersA
andB
you would set the propertyFiles="AssemblyInfo.cs"
andPublishUrls="A;B"
What makes this work is the extra metadata in the CreateItem task
AdditionalMetadata="RootDirectory=%(PublishUrls.FullPath)"
so for each files found inFile
it creates 1 entry for each item found inPublishUrls
. In your case of a single file the equivelent in writing out the xml would be:Now if you copied the contents of a folder that had files
1.txt
and2.txt
copied toA
andB
the equivalent xml would be: