2011-07-29 112 views
2

在Visual Studio中使用發佈嚮導時,可以選擇將.deploy附加到文件。 這樣做的原因是在這裏:msbuild發佈.deploy擴展

http://msdn.microsoft.com/en-us/library/ms228998.aspx

但對於我們誰喜歡有完全的控制我建立的部署腳本(.msbuild)

繼承人片段:

 <MSBuild Projects="$(SolutionFile)" Targets="Clean;ReBuild" Properties="Configuration=$(Configuration);" /> 

     <MSBuild Projects="$(SolutionFile)" 
     Targets="Publish" 
     Properties="PublishUrl=$(PublishLocation); 
     InstallUrl=$(InstallUrl); 
     Configuration=$(Configuration);  
     GenerateManifests=$(GenerateManifests); 
     BootstrapperEnabled=$(BootstrapperEnabled); 
     IsWebBootstrapper=$(IsWebBootstrapper); 
     ApplicationVersion=$(ApplicationVersion); 
     UpdateEnabled=$(UpdateEnabled); 
     UpdateMode=$(UpdateMode); 
     UpdateUrl=$(UpdateUrl)" /> 

我想知道發佈目標上是否有屬性會執行此操作,或者這只是Visual Studio嚮導提供的一些巫術。

如果沒有我將不得不寫一些東西到我的腳本來重命名文件,這是hacky IMO。

邁克

+0

+2用於在MSBuild中編寫自己的部署腳本。 -1仍然使用該解決方案。側邊欄:「Clean; Rebuild」是多餘的,因爲Rebuild == Clean; Build。 –

+0

感謝您的信息。不確定'-1仍然使用解決方案'是什麼意思?我可以將它指向.csproj文件 - 但我不知道它的區別。 – Mike

回答

2

就讓我們來看看在Microsoft.Common.targets表明這個文件重命名是通過設置$(MapFileExtensions),以真正的控制。嘗試添加這對您的屬性列表:

MapFileExtensions=true 

這改變了內部屬性$(_ DeploymentFileMappingExtension)的值是「指向.deploy」,然後將其添加到部署文件時,他們在_CopyFilesToPublishFolder目標被複制。