MSBuild扩展包将目录中的所有内容复制到另一个

问题描述:

我正在使用MSBuild扩展包。我想将构建目录的全部内容复制到文件系统上的另一个目录。我不想重命名目标目录,只需更换内容即可。这可能是我对msbuild extensionpack不熟悉,但似乎这应该很容易,我一直无法在网上找到现成的文档。MSBuild扩展包将目录中的所有内容复制到另一个

我试图设置一个服务,在成功构建后自动部署在持续集成环境中。

据我记得,你需要清除和复制分开的步骤。因此,先删除/清除,然后复制。我无法(在我上次做的时候)找到一种“覆盖”的方法。这实际上对我们来说更好,因为一个版本可能会删除以前版本中包含的文件,因此我们不希望它们“流连忘返”。

要删除,请尝试(假设DeploymentDesintationPath与路径的属性):

<MSBuild.ExtensionPack.FileSystem.Folder 
    TaskAction="RemoveContent" 
    path="$(DeploymentDestinationPath)" /> 

,然后复制(请注意,你需要来填充的ItemGroup源和目的地两者)

<ItemGroup>  
     <DeploymentSourceFiles 
      Include="$(BuildFolder)\**\*" 
     /> 
     <DeploymentDestinationFiles 
      Include="@(DeploymentSourceFiles-> 
      '$(DeploymentDestinationPath)\%(RecursiveDir)%(Filename)%(Extension)')" 
     /> 
</ItemGroup> 

<Copy SourceFiles="@(DeploymentSourceFiles)" 
    DestinationFiles="@(DeploymentDestinationFiles)" /> 

我几个月没有这样做过,所以如果这些例子中的任何一个都需要调整一下的话。

+0

不需要赦免,它工作完美。它是通过我进行循环的DeploymentDestinationFiles属性包含的语法。谢谢! – aceinthehole 2011-01-29 20:39:59