2013-07-01 71 views
1

我正在嘗試使用可用於不同配置的WiX Toolset v3.7.1224.0創建安裝程序。我已經有一個在VS2010中使用Votive構建的工作安裝程序。安裝程序在WixSqlExtension的幫助下創建一個MSSQL數據庫。如何將包含多個文件的目錄添加到wix項目輸出文件夾?

數據庫創建完成並指定了所有表後,我希望安裝程序用一些值初始化表。目前這些值作爲SqlString元素編譯到msi中。我想將這些字符串外化爲一個配置文件。配置文件將存儲使用InsertTemporary()方法臨時插入到SqlString表中的字符串以及定製中的SOURCEDIR屬性。我還沒有決定配置文件的格式,但它會是一個xml文件或一個簡單的文本文件,其中每個sql字符串分別位於自己的行中,或者分別位於其自己的元素中,因此我可以解析文件併爲文件中的每個條目添加一個臨時記錄。

我想將這個配置文件集成到我的項目結構中。它應該被複制到項目的輸出目錄中,但不應該安裝在最終用戶的計算機上。我認爲我可以通過將文件添加到我的項目中,然後在Votive中更改文件的高級屬性來實現此目的。我將「構建操作」指定爲「內容」,並將「複製到輸出目錄」指定爲「始終」。但是當我構建項目時,該文件不存在於項目的輸出目錄中。充其量,我希望能夠將包含多個配置文件的目錄添加到項目輸出目錄中。

有沒有什麼辦法可以與Votive和Wix一起實現?這可能與MSBuild?我將如何修改.wixproj文件以創建目錄和文件?

回答

1

確實,解決方案是修改該項目的wixproj文件。 Wix使用MSBuild,對於MSBuild的WIX目標的簡要描述可以在here找到。要編輯Visual Studio中的wixproj文件,請打開Wix項目的上下文菜單並將其卸載。打開卸載項目的上下文菜單並選擇edit projectname.wixproj

複製文件的項目已編譯後,與Name屬性設置爲AfterBuildTarget元素已被添加到wixproj文件的Project元素。要複製文件,請爲要複製到輸出文件夾的每個文件指定一個Copy元素。將Copy元素放置在您的Target元素內。閱讀Copy語法here。 MSBuild可以做更多的事情,所以看看reference

相關問題