2015-08-24 19 views
0

我目前在安裝程序中使用幾個可執行文件(腳本),這些可執行文件在安裝和/或卸載過程的不同階段並且也放置在目標機器上。我目前正試圖簡化這個過程,因爲這個實現不是屢獲殊榮的,並且因爲我正在嘗試,所以導致了一些問題。也可執行文件(腳本)是獨立的vb.net項目,而不是wix vb自定義操作項目。我從這些項目中獲得的可執行文件包含在安裝程序中,並按上述方式使用。如何在安裝過程中執行CA.dll而不在目標機器上安裝它

我想accomplisch如下:

1)一個具有多種功能的維克斯CustomAction項目。

2)調用CustomAction並啓動所需的功能。

3)能夠在安裝和/或卸載時多次調用CustomAction,而不是將其安裝在目標機器上。

前兩點已經在工作,但點沒有。我在互聯網和這個網站上環顧四周,發現了以下thread然而,當我實施它時,它不起作用。我做了以下內容:

<Binary Id ="CustomAction" SourceFile ="$(var.C:\Users\fjansen\Documents\Visual Studio 2013\Projects\Wix test\test with multiple calls\bin\Debug\test with multiple calls.CA.dll)" /> 
<CustomAction 
Id="OnInstall" 
BinaryKey="CustomAction" 
DllEntry="CustomAction1" 
Execute="deferred" 
Impersonate="no" 
Return="check" 
/> 
    <InstallExecuteSequence> 
<Custom Action="OnInstall" Before="InstallFinalize"> NOT Installed AND NOT PATCH </Custom> 

但是當我試圖建立它,我得到以下錯誤:未定義的預處理器變量。

我看着這個錯誤芽無法真正找出可能導致它, 很明顯,我需要定義的東西,但我不知道在哪裏和如何。

所有幫助是值得歡迎

在此先感謝, F.Jansen

回答

0

我不相信有一個預處理器變量的名字叫做:

C:\Users\fjansen\Documents\Visual Studio 2013\Projects\Wix test\test with multiple calls\bin\Debug\test with multiple calls.CA.dll

所以,你要麼定義變量 <?define PathToCustomActionBin="C:\Users\fjansen\Documents\Visual Studio 2013\Projects\Wix test\test with multiple calls\bin\Debug\test with multiple calls.CA.dll)"

並更新您在二元元件的源文件中SourceFile=$(var.PathToCustomActionBin)

或只是從的SourceFile的開頭和)從最終刪除$(var.解決您的代碼。

像: SourceFile="C:\Users\fjansen\Documents\Visual Studio 2013\Projects\Wix test\test with multiple calls\bin\Debug\test with multiple calls.CA.dll" />

+0

感謝您的答覆,但是,沒有工作的。它在使用orca時編譯出現問題我無法將該文件視爲包的一部分。 .MSI的大小保持不變,表示什麼都沒有添加。 –

+0

在二進制表中檢查你是否有你的自定義動作的DLL,還檢查你是否在Orca的CustomAction表中有你的OnInstall自定義動作。此外,如果它編譯,也許你應該嘗試和測試MSI並查看日誌,如果自定義操作正在執行。 – IlirB

+0

這是事情,編譯時,我使用逆戟鯨太看在Msi我無法找到自定義操作,也沒有二進制。當我將CA.dll作爲任何其他文件與它在安裝時工作的組件一起添加時,該文件也無處可見 –

相關問題