2016-03-08 60 views
0

安裝程序爲Wix 3.10.2和Visual Studio 2015.使用wix安裝項目和自定義操作項目。無法在Visual Studio中正確地爲WiX指定變量

我想爲我的項目創建一個包含javados的片段。我讀過here來設置預處理器變量(或系統變量)。我選擇在項目中包含變量定義。我試圖預處理器VAR

<DefineConstants>JavaDocBase=c:\javadocs</DefineConstants> 

,只是設置一個正常的變量:

<WixVariables>JavaDocBase=c:\javadocs</WixVariables> 

無論是結束了工作。

預生成事件:

<PropertyGroup> 
<PreBuildEvent>"$(WIX)bin\heat.exe" dir "$(var.JavaDocBase)" -cg JavaDocs_JSP -gg -scom -sreg -sfrag -srd -dr INSTALLDIR -var var.JavaDocBase -out "$(ProjectDir)\JavaDocs_JSP_Fragment.wxs"</PreBuildEvent> 
</PropertyGroup> 

我似乎總是收到錯誤:

Unhandled Exception:The expression """.JavaDocBase" cannot be evaluated. Method 'System.String.JavaDocBase' not found. 

我已經試過var.JavaDocBase,wix.JavaDocBase,env.JavaDocBase和剛剛JavaDocBase ..而最後一次將允許命令運行,但它沒有放在正確的路徑上,所以我沒有進一步提前。

是否有可能複製以前鏈接教程中的內容,如果有,我做了什麼錯誤?

回答

0

使用它作爲屬性而不是$(var.JavaDocBase)嘗試$(JavaDocBase)。

還在wixproj文件中設置屬性。

<PropertyGroup> 
    <JavaDocBase>c:\javadocs</JavaDocBase> 
    <DefineConstants>$(DefineConstants);JavaDocBase=$(JavaDocBase)</DefineConstants> 
</PropertyGroup> 
+0

如何添加該屬性 - 可以從視覺工作室GUI完成,還是我必須卸載項目並手動編輯wixproj文件?看起來它定義了兩次,不是嗎?一旦作爲xml標籤並且曾經作爲預處理器定義? – Jon

+0

是的,您必須卸載項目,您可以執行的定義部分,或者在wixproj或預處理器定義中。如果你需要我可以發佈代碼... –

+0

我似乎無法通過將JavaDocBase設置爲預處理器定義來做出任何事情......我確實創建了一個新的屬性組,並將其添加爲新的屬性(沒有PP-Def)並且工作正常,我覺得很困惑,並且留下了一些Q:爲什麼PP-Def方法不工作?可以在外部(在文件中)定義這個以允許一個位置進行配置? – Jon

相關問題