2012-04-03 80 views
1

我有一個關於WiX的問題。但讓我首先描述我的情況: 我有一個VS2010解決方案,並添加了一個WiX(Votive)項目來進行安裝。我正在TFS構建服務器上構建此安裝程序。不幸的是,我所有的文件(* .dll,* .sql,* .msi,* .whatever)都被盲目地複製到相同的輸出路徑中!我已經將Move-Task添加到我的Setup.csproj文件中,以將我的msi,bat和sql文件移動到單獨的文件夾中,但不幸的是,這不適用於TFS-Build。製作文件夾在WiX輸出建立下降路徑

這是問題(imho): 我在做什麼Votive是一個階段提前。我可以創建文件夾並移動文件,但是我在csproj文件中寫入的內容是在TFS隨機取出所有二進制文件並將其放入放置位置之前完成的。

如何我試圖解決:

  1. 我搜索wix2010.targets文件移動或複製命令,其中已移至build_drop,但我無法找到它。
  2. 我看着構建過程模板,但我不知道語言或語法。有什麼與它有關的嗎?
  3. 在構建默認值的構建定義中,複選框「此構建將輸出文件複製到放置文件夾」,我必須添加放置位置。有什麼我可以在這裏改變?

我的問題: 如何使用WiX安裝程序文件創建子文件夾並將某些文件移入TFS構建中?

我希望你能幫忙! 在此先感謝!

回答

1

如果您只需要移動文件以便您的安裝程序知道在哪裏抓取它們,那麼另一種方法是將config.wxi文件添加到安裝程序,該文件指向源文件的位置。你可以閱讀更多關於這個here。雖然採用這種方法,您可能需要在安裝程序編譯時修改config.wxi以指向新的構建位置或放置位置。如果您熟悉MSBuild,可以使用Tranxition Build Tasks這將幫助您輕鬆修改WiX .wxi文件。您也可以編寫自己的腳本來執行此操作,但無論採用哪種方式,您都必須從運行構建的構建定義中啓動腳本或構建任務。

如果您正在使用Team Build 2010,並且您只想在構建過程中複製文件和文件夾,那麼您將需要修改運行構建過程的.xaml Team Build定義。 Ewald Hofman在Customizing Team Build definitions上寫了一篇很好的系列文章。

1

我不知道我是否按照你的問題,但我認爲你抱怨你的DLL/EXE/et all和MSI都歸檔到一個目錄中。是的,我也不喜歡這個。

我所做的是創建稱爲應用程序,合併模塊和設置的解決方案平臺。然後我告訴TFS構建:

發佈|應用程序 發佈|合併模塊(選項,你可能沒有任何構建) 發佈|設置

這將導致我所有的DLL /的EXE /內容歸檔到\應用程序\發佈,我所有的合併模塊歸檔到\合併模塊\發佈和我的MSI存檔到\ SETUP \發佈

這對我很好。