我已经创建使用Visual Studio安装程序(Visual Studio安装项目)为MyProgram的安装空文件夹后面的树叶。它被称为“MyProgram Setup.msi”。它安装的程序很好,如果使用控制面板将其卸载,那么所有东西都会被删除。我已经为MyProgram的安装,但卸载快捷方式,它会创建
的问题是,我想一个快捷方式添加到“用户的程序菜单”称为“卸载MyProgram”的程序快捷方式下。我试图在3个不同的方式这样做的,在所有3种方式如果MyProgram是使用快捷键卸载,卸载程序将落后2个空文件夹假(“...程序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
我添加快捷方式输入到快捷方式表。卸载工作但使用此快捷方式时仍然留下2个空文件夹。
3)从内MyProgram.exe代码
我改性MyProgram.exe采取 “/卸载” 命令行参数来运行 “MSIEXEC.EXE /卸载{MyGUID}” 和退出本身。与此相似的解决方案:http://www.codeproject.com/KB/install/DeployUninstall.aspx
这些尝试都没有创建一个快捷方式,可以卸载的程序以及程序的基本文件夹。我不想切换到其他安装程序产品,如Inno Setup,NSIS或WiX。
我已经创建了一个干净的新程序来测试它是否是我的设置或程序的问题。该程序是TestProgram.exe,它是一个Windows窗体应用程序,根本没有添加任何代码。安装程序是Setup1.msi。卸载快捷方式导致应用程序文件夹中的Uninstall.bat文件。您可以安装并使用此快捷方式卸载,而无需运行TestProgram.exe。尽管如此,卸载快捷方式仍留下2个空文件夹。 – Coder7862396 2010-05-31 05:09:07
Uninstall.bat在软件包中是否正确?因此它是* IN USE *当卸载发生时,所以无法删除文件夹 – saschabeaumont 2010-05-31 23:19:31
好的,这是有道理的。但是,如果我使用#2方法,并编辑MSI以添加msiexec.exe的快捷方式,那么程序包或程序文件夹中没有额外内容,并且在卸载过程中唯一使用的是msiexec.exe。即使使用这种方式也不能解决问题。 – Coder7862396 2010-06-01 00:19:44