0

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

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

4

1 回答 1

1

据我记得,您需要在单独的步骤中清除和复制。所以先删除/清除,然后复制。我无法(在我上次这样做的时候)找到一种“覆盖”的方法。这实际上对我们更有效 b/c 一个构建可能会删除前一个包含的文件,所以我们不希望它们“徘徊”。

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

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

然后复制(请注意,您需要为源和目标填充一个项目组)

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

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

我已经有几个月没有这样做了,所以如果这些示例中的任何一个需要一些调整,请原谅。

于 2011-01-27T21:55:07.033 回答