2012-10-30 16 views
3

我有一個解決方案,有一些Wix項目,我想使用Paraffin維護包含文件列表。使用石蠟TFS

從我所瞭解的情況來看,您通常會在各個bin文件夾中指向Paraffin以收集所有文件。

當TFS構建解決方案時,它將覆蓋OutDir msbuild屬性,這會導致所有構建輸出轉到公共Binaries目錄,而不是每個項目的bin文件夾。

那麼人們在這種情況下如何使用石蠟呢?

+0

您可以爲所有項目設置公共輸出目錄,然後使用Paraffin從這個公共位置獲取文件。 –

+0

如果所有輸出(* .dll,* .exe)最終都在一個文件夾中,那麼無法確定哪些屬於哪個項目。 –

回答

2

我沒有使用石蠟年。最新版本可能會做你所需要的,但讓我給你一些額外的想法,你可以使用或不使用石蠟

缺點 石蠟牛油

之一是它們收穫二進制,因此必須存在,是在相應的文件夾等的替代方法是從的.sln收穫文件本身以及它引用的.proj文件 - 解決方案大概是哪些二進制文件是否在產品包中的明確列表。您可以在構建時爲每個二進制文件自動生成片段,而無需在源代碼管理中維護這些片段,而無需實際構建二進制文件。

研究在WiX 3.6+中的MSBuild集成,特別是harvest targets。如果這不適用於您,請嘗試以下操作:

我們採用的最近項目的方法完全繞過了加熱。我們編寫了一個工作流活動來掃描.sln及其.proj引用,併爲每個二進制直接生成一個WiX 片段 - 它們都只是XML文檔。版本3 UUID是基於二進制名稱,目標文件夾和內部版本生成的(對於此構思,信用爲Derek Cicerone),因此ComponentID從構建到構建是一致的,但在分支到新版本時會自動滾動。

溶液中的一些二進制文件(如測試夾具),我們不想把安裝程序包中,所以我們注入了新的MSBuild屬性爲.proj文件,以標誌「安裝」(或沒有)。你可以注入一個屬性來指定目標目錄 - 在我們的例子中,所有的二進制文件都是假設進入同一個文件夾,所以我們不需要這個。你甚至可以爲此創建一個自定義的Visual Studio項目屬性頁面,如果你想要看上。

這樣做的一個好處是團隊中的應用程序開發人員可以簡單地向解決方案添加新的二進制文件或刪除現有的二進制文件,安裝程序包會自動同步下一個包中的內容建立。安裝人員(你真的)保存了很多麻煩!

你可以結合這些方法:掃描其二進制文件,它能增強的解決方案,然後使用該信息來定位石蠟在相應的文件夾|文件收穫。

+0

那裏有一些好主意 –