当前位置:  开发笔记 > 运维 > 正文

使用msbuild复制所有文件和文件夹

如何解决《使用msbuild复制所有文件和文件夹》经验,为你挑选了4个好方法。

只是想知道是否有人可以帮我解决一些我想写的msbuild脚本.我想要做的是使用msbuild将文件夹中的所有文件和子文件夹复制到另一个文件夹.

{ProjectName}
      |----->Source
      |----->Tools
              |----->Viewer
                       |-----{about 5 sub dirs}

我需要做的是将tools文件夹中的所有文件和子文件夹复制到应用程序的调试文件夹中.这是我到目前为止的代码.

 

 


        
  

构建脚本运行但不复制任何文件或文件夹.

谢谢



1> Rodolfo Neub..:

我也在寻找这方面的帮助.我花了一段时间,但这是我做的非常好的工作.


    
        
    
    

这个递归复制命名的文件夹中的内容antlrcs$(TargetDir).


诀窍似乎是将'%(RecursiveDir)`添加到目标文件夹将重新创建目录结构.否则输出是平坦的.这是最佳答案.
是的,这是最好的答案.与msdn博客上推荐的相同:http://blogs.msdn.com/b/msbuild/archive/2005/11/07/490068.aspx
工作正常 - 谢谢!我想知道为什么其他更复杂的答案有更多的赞成?!

2> brock.holum..:

我认为问题可能在于您如何创建ItemGroup并调用Copy任务.看看这是否有意义:


    
        ..\SomeDestinationDirectory
        ..\SomeSourceDirectory
    

    
        
            
        

        
    



3> 小智..:

我是MSBuild的新手,但我发现EXEC Task适合这样的情况.我在项目中遇到了同样的挑战,这对我有用,而且更简单.有人请告诉我这是不是一个好习惯.


    


我不敢反过来问这个问题.是否有任何理由使用日志填充msbuild复制任务?
潜在的.如果您有一个构建服务器场(Jenkins,TeamCity等),则代理服务可能在路径中没有xcopy的其他帐户下运行.您可以在路径中尝试%windir%\ system32之类的内容,但即使这样也不会有效.
我知道这个问题不常出现,但我使用`Copy`任务而不是命令的主要原因是兼容性.我之前使用Mono构建Linux,显然`xcopy`在那里不起作用.

4> 小智..:

    
        ..\SomeDestinationDirectory
        ..\SomeSourceDirectory
    

    
        
            
        

        
    

\**\*.*帮助从所有文件夹中获取文件.RecursiveDir帮助将所有文件放在相应的文件夹中...


目标文件引用1个项目,源文件引用33个项目.它们必须具有相同数量的项目.呃.. msbuild可能很棒,但有时候记录得如此糟糕.
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有