我使用 Visual Studio 安装程序(Visual Studio 安装项目)为 MyProgram 创建了一个安装程序。它称为“MyProgram Setup.msi”。它可以很好地安装程序,如果使用以下命令卸载它添加/删除程序控制面板然后所有内容都会被删除。
问题是我想在名为“Uninstall MyProgram”的程序快捷方式下添加“用户程序菜单”的快捷方式。我尝试过以三种不同的方式做到这一点所有 3 种方式如果使用该快捷方式卸载 MyProgram,则卸载将留下2个空文件夹(“...Program Files\MyCompany\”和“...Program Files\MyCompany\MyProgram\”)。
以下是我尝试创建卸载程序快捷方式的 3 种方法:
1) 批处理或脚本文件的快捷方式
卸载MyProgram.bat:
@ECHO OFF
msiexec /uninstall {MyGUID}
卸载MyProgram.vbs:
Dim objShell
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run("START /B msiexec /uninstall {MyGUID}")
Set objShell = Nothing
2)使用Orca.exe编辑MSI文件
我通过本指南找到了如何做到这一点:http://www.codeproject.com/KB/install/MSIShortcuts.aspx http://www.codeproject.com/KB/install/MSIShortcuts.aspx
我将快捷方式条目添加到快捷方式表中。卸载成功,但使用此快捷方式时仍然留下 2 个空文件夹。
3) 来自 MyProgram.exe 中的代码
我修改了 MyProgram.exe 以采用“/uninstall”命令行参数来运行“msiexec.exe /uninstall {MyGUID}”并自行退出。与此解决方案类似:http://www.codeproject.com/KB/install/DeployUninstall.aspx http://www.codeproject.com/KB/install/DeployUninstall.aspx
这些尝试都没有创建可以卸载程序及其基本文件夹的快捷方式。我不想切换到其他安装程序产品,例如 Inno Setup、NSIS 或 WiX。
如果出于某种原因手动运行msiexec /x {MyGUID}
没有删除所有文件夹,那么这是您的设置或您在应用程序中执行的操作的问题。
有关使用 WiX 创建卸载快捷方式的更多信息,请查看这篇博文 http://robmensching.com/blog/posts/2007/4/27/How-to-create-an-uninstall-shortcut-and-pass-all-the其中涉及相当多的细节。根据博客文章中显示的信息,您应该能够弄清楚如何坚持使用现有技术并使用您提到的 (2) 方法的一些变体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)