我有我自己的用於安裝的UI(使用SharpSetup)。問題是,當我雙擊msi文件的UI不會出現=>相同,當我卸載它。看到我有UI雙擊我的UI progject => gui.exeWIX如何打開自定義UI
我要找的是:
,纔有可能開始的時候我雙擊MSI文件的用戶界面? 如果可能=>我該如何做到這一點,我必須包括,如果我卸載它(添加/刪除程序)UI也會出現?
感謝
我有我自己的用於安裝的UI(使用SharpSetup)。問題是,當我雙擊msi文件的UI不會出現=>相同,當我卸載它。看到我有UI雙擊我的UI progject => gui.exeWIX如何打開自定義UI
我要找的是:
,纔有可能開始的時候我雙擊MSI文件的用戶界面? 如果可能=>我該如何做到這一點,我必須包括,如果我卸載它(添加/刪除程序)UI也會出現?
感謝
您必須使用EmbeddedUI元素,以指定您有自定義UI文件。
例(其中自定義UI是一個DLL裏面):
<UI>
<EmbeddedUI Id="EmbeddedUI.dll" SourceFile="..\EmbeddedUI\EmbeddedUI.dll"/>
</UI>
一旦你這樣做,你必須爲每個動作提供的對話,因爲沒有默認股票的人將不再運行。
關於卸載,如果我沒有記錯,自定義用戶界面只會在修復過程中顯示出來,因此您可以觸發修復而不是卸載以顯示用戶界面並從那裏卸載。根據MSDN:「」自定義用戶界面DLL,在本例中爲embedui.dll,應該導出用戶定義的InitializeEmbeddedUI,EmbeddedUIHandler,用戶定義的InitializeEmbeddedUI,EmbeddedUIHandler,和ShutdownEmbeddedUI函數「
您可以查看更多信息here。
SharpSetup使用外部UI,而不是嵌入式UI。在典型的情況下,msi文件不包含任何UI,因此您所觀察到的內容非常值得期待。但是,不應該將獨立.msi文件部署到客戶端,而只需要包含所有必需文件(包括.msi文件和gui.exe)的Installer.exe文件。
感謝您的回覆, 我在我的WIX文件中添加了 -Tag,並創建了一個實現IEmbeddedUI的gui.dll。 IEmbeddedUI包括方法(Initialize,ProcessMessage,Shutdown)。我不太確定,但是那些爲dll所需的方法? 問題是,這些方法都沒有被調用 –
TimTiTim
2011-05-31 11:54:21
@TimTiTim我已經編輯了答案,並附有關於EmbeddedUI的MSDN示例的鏈接。這些是必要的方法,以顯示您的自定義用戶界面。我以前使用C++和MFC來完成這個工作,它工作正常。 – 2011-05-31 12:39:40
感謝您的更新,我也看到了這一點。我使用WPF,並且我也添加了這些方法。但它不起作用。 WIX文件中沒有定義GUI dll的入口點的可能性嗎? – TimTiTim 2011-05-31 13:11:43