2011-01-27 205 views
0

我正在使用MSBuild擴展包。我想將構建目錄的全部內容複製到文件系統上的另一個目錄。我不想重命名目標目錄,只需更換內容即可。這可能是我對msbuild extensionpack不熟悉,但似乎這應該很容易,我一直無法在網上找到現成的文檔。MSBuild擴展包將目錄中的所有內容複製到另一個

我試圖設置一個服務,在成功構建後自動部署在持續集成環境中。

回答

1

據我記得,你需要清除和複製分開的步驟。因此,先刪除/清除,然後複製。我無法(在我上次做的時候)找到一種「覆蓋」的方法。這實際上對我們來說更好,因爲一個版本可能會刪除以前版本中包含的文件,因此我們不希望它們「流連忘返」。

要刪除,請嘗試(假設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

相關問題