2011-08-10 39 views
4

我在幹什麼維克斯(還願)項目參考收穫(HEAT)的ASP.Net Web應用程序

我在Visual Studio 2010中我可以在ASP.Net Web應用程序和WiX的安裝項目明確地收穫與設置爲安裝項目一個預生成事件下面的命令HEAT Web應用程序:

「%維克斯%\ BIN \ heat.exe」項目「$(SolutionDir)Application.WebUI \應用.WebUI.vbproj「-o」$(ProjectDir)ProjectOutputContent.wxs「-pog Content -ag -template fragment -nologo -directoryid RUNTIMEFOLDER

「%WIX%\ bin \ heat.exe」project「$(SolutionDir)Application.WebUI \ Application.WebUI.vbproj」-o「$(​​ProjectDir)ProjectOutputBinariesAndSymbols.wxs」-pog Binaries -pog Symbols -ag - 模板片段-nologo -directoryid BINFOLDER

請記住RUNTIME文件夾和BINFOLDER是我在我的主要產品WXS文件中聲明設置的目錄。

爲什麼我不喜歡

這種做法是煩人,因爲我需要產生的熱量片段WXS文件簽出之前,我可以生成安裝項目。另一個考慮是它是一個Web應用程序,我需要將二進制文件和符號放入不同的目錄(bin)而不是內容。

什麼我的目標

我寧願使用維克斯安裝項目中的項目引用,只是嘉實屬性設置爲True。然後,我可以收穫BinariesContentSatellites以獲取我需要的片段中的項目,然後設置一個我可以在主要產品WXS中參考的Directory ID。問題是,這將把內容,二進制文件和符號放在同一個文件夾中,我需要將後兩個文件放在嵌套的bin文件夾中。我無法兩次添加此項目參考,每個項目都有不同的收穫選項。

我的問題

有沒有辦法做我以後我還是做我需要保持與預生成事件?順便說一下,我已經考慮過一次手動收穫片段,沒有構建事件,然後根據需要重新收割。我寧願避免這種做法。

回答

3

回答你的話題「爲什麼我不喜歡它」:我也有同樣的問題,但後來我找到了解決方案。你不需要簽入片段文件。只需在物理上添加文件,然後包含在您的項目中

注意:不要從項目中添加片段文件。

+0

我喜歡你的想法。如果有人首先從源代碼控制中取消了這個項目,那麼該項目看起來就像是缺少文件,但它會成功構建。構建Visual Studio後不會立即顯示那些文件,但它們是。再次重新開放該項目將使他們在那裏。 –

+0

我在考慮對這種方法進行改進。我已將「ProjectOutputBinariesAndSymbols.wxs」和「ProjectOutputContent.wxs」添加到我的編譯器附加參數中。我還在Wix Setup Project屬性屏幕的工具設置下爲我的鏈接器附加參數添加了「obj \ Debug \ ProjectOutputBinariesAndSymbols.wixobj」和「obj \ Debug \ ProjectOutputContent.wixobj」。 –

+0

您也可以從源代碼管理中明確排除文件。選擇文件,單擊文件 - >源代碼管理 - >(高級,在VS2012中) - >從源代碼管理中排除ProjectOutputContent.wxs。見:http://img15.imageshack.us/img15/2189/69468689.png – riezebosch