2011-12-24 73 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