2013-10-09 133 views
8

我正在使用使用wix安裝的程序。 (不知道它是否相關,但是它是一個C#程序)Wix - 如何從安裝的目錄安裝後運行exe文件?

我想運行一個由msi文件安裝的exe文件,但安裝的位置對我來說是未知的,因爲用戶選擇安裝路徑。

我想問一個如何從用戶選擇的位置運行exe文件的例子。

即使它不是問題的一部分,我也很高興看到一些從絕對位置運行exe文件的示例,因爲我是初學者,並且第一次完成這些工作。

回答

10

這可以在WIX​​擴展的幫助下實現。下面的粗體/斜體文本將負責尋找你的EXE :)

步驟1的確切位置的情況下:擴展庫添加到您的項目

如果您使用的WiX你所需要的命令行下面添加到您的蠟燭光命令行:

-ext WixUIExtension -ext WixUtilExtension 

如果您正在使用Visual Studio,你可以使用添加引用對話框添加擴展:

Right click on your project in Solution Explorer and select Add Reference... 
Select the WixUIExtension.dll assembly from the list and click Add 
Select the WixUtilExtension.dll assembly from the list and click Add 
Close the Add Reference dialog 

第2步:添加UI到您的安裝

的WiX的最小UI序列包括對話的基本集,包括可選的複選框成品對話框。要在項目中包含序列,請在<Product>元素內的任意位置添加以下片段。

<UI> 
    <UIRef Id="WixUI_Minimal" /> 
</UI> 

到安裝程序的最後一個屏幕上顯示的複選框包括下面的代碼片斷的<Product>元件內的任何地方:

<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch My Application Name" /> 

的WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT屬性是由,設置當標準UI序列提供,顯示覆選框並使用指定的值作爲複選框標籤。

第3步:包括自定義操作

自定義操作包括在使用元素的WiX的項目。運行應用程序是通過WixShellExecTarget自定義操作完成的。告訴Windows安裝程序有關的自定義操作,並設置其屬性,在項目中包含以下的<Product>元素內的任何地方:

<Property Id="WixShellExecTarget" Value="[#myapplication.exe]" /> 
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" /> 

Property元素設置WixShellExecTarget所安裝應用程序的位置。 WixShellExecTarget是屬性Id,WixShellExec自定義操作期望將其設置爲要運行的文件的位置。*

Value屬性使用特殊字符#告訴維克斯查找 id爲myapplication.exe該文件的完整路徑安裝。


的CustomAction元件包括在安裝程序的操作。它被賦予一個唯一的Id,並且BinaryKey和DllEntry屬性指示自定義操作的彙編和入口點。 Impersonate屬性告訴Windows Installer以安裝用戶身份運行自定義操作。

步驟4:觸發的自定義動作

只需包括自定義動作,如在步驟3中,是不充分的,以使其運行。必須在觸發自定義操作時告訴Windows Installer。這是通過使用<Publish>元素將其添加到用戶單擊UI對話框最後一頁上的完成按鈕時運行的操作完成的。發佈內容應列入第2步裏面的元素,看起來像這樣:

<Publish Dialog="ExitDialog" 
    Control="Finish" 
    Event="DoAction" 
    Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish> 

對話框屬性指定自定義操作將被連接到對話框中,在這種情況下ExitDialog。 Control屬性指定對話框上的Finish按鈕觸發自定義操作。 Event屬性指示單擊按鈕時應運行自定義操作,而Value屬性指定步驟3中包含的自定義操作。元素上的條件阻止操作運行,除非已選中步驟2中的複選框並且應用程序實際上已安裝(而不是被刪除或修復)。

點擊此鏈接瞭解詳情。 How to run exe after install。爲了其他人尋找相同答案的利益,我在這裏複製了它。

+0

你想試試回答這個問題:(一個新的) http://stackoverflow.com/questions/19355537/wix-setting-install-folder-correctly –

+1

當我嘗試這個安裝程序從不存在。當您嘗試關閉安裝程序時,它會在您每次點擊關閉時啓動一個新應用程序,但它永遠不會退出。 –