2011-12-24 157 views
1

我編寫了一個免費的實用程序來更改系統設置。有些用戶錯誤地認爲他們可以簡單地通過卸載實用程序來撤消更改。當他們嘗試卸載時,我想向他們顯示一條消息,告訴他們必須使用該實用程序才能撤消更改,併爲他們提供繼續或取消卸載的選擇。我該怎麼做呢? 我在Visual Studio 2010中使用InstallShield LE。InstallShield LE:自定義卸載

回答

1

通常的方法是使用卸載自定義操作。它可以提示用戶並返回0繼續或1602取消。

此自定義操作需要是一個win32 DLL,它接收安裝句柄。 EXE或.NET自定義操作對於成功或其他任何值致命錯誤(無用戶退出支持),只能返回0。

不幸的是,InstallShield LE不支持DLL自定義操作(它需要付費版本)。因此,一個解決方案是使用一個不同的安裝工具,它在自定義操作提供了更多的控制:http://en.wikipedia.org/wiki/List_of_installation_software

另一種解決方案是通過與Orca編輯它手動添加在您的MSI自定義操作。

+0

如何構建自定義DLL,然後使用Orca添加它:http://www.codeproject.com/KB/install/msicustomaction.aspx – 2012-01-15 02:33:31

+0

這有關編寫自定義動作DLL的更多信息:http:/ /www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/ – 2012-03-18 07:24:51

+0

CodeProject鏈接講述了「消息框如何最終隱藏在MSI對話框後面」。這看起來像一個可能的解決方案:http://geekswithblogs.net/Bretshawn/archive/2010/02/19/how-to-force-a-windows-installer-custom-action-form-to.aspx – 2012-03-18 07:46:46