MSI(从WIX创建) - 卸载应用程序不会删除根安装文件夹

时间:2015-05-22 10:04:29

标签: wix windows-installer uninstall msiexec

MSI(从WIX创建) - 卸载应用程序不会删除根安装文件夹。

1)我安装了MSI(例如:选择安装根位置: C:/ MSI_test / 并使用AppName安装。最终位置为 C:/ MSI_test / AppName / < / strong>)并且部分安装将MSI复制到我的安装位置(出于修复目的,从卸载快捷键Key。当我单击卸载快捷方式时,它指向我已安装目录中的MSI并打开一个包含修复或删除选项的对话框)< / p>

2)如果用户尝试从卸载快捷方式卸载此应用程序,它将删除所有已安装的文件和文件夹,但不会删除根安装位置(即 C:/ MSI_test / AppName /

以下是我的uninstall.bat文件中的代码(在卸载快捷方式期间调用)

cmd.exe /c start "" "C:\MSI_test\AppName\Config\App.msi"
exit;

3)如果我在不同位置(即在C:/测试中)有MSI并尝试卸载应用程序,它会删除所有内容(即已安装的文件和文件夹,包括根安装位置)

4)如果我们尝试从上面的步骤2中卸载以删除根安装文件夹,那么删除根文件夹是否有问题?

2 个答案:

答案 0 :(得分:1)

您遇到的问题可能是您的卸载程序正在打开文件夹。我之前通过创建卸载并将其复制到Temp文件夹并从那里运行卸载程序的exe来解决此问题,人们通常会清理临时文件夹。

这也许是一种更好的方法:

http://robmensching.com/blog/posts/2007/4/27/how-to-create-an-uninstall-shortcut-and-pass-all-the/

答案 1 :(得分:0)

您所看到的是锁定被放置在该文件夹或其内容上的结果,这可能是由于批处理文件本身正在执行(它将命令解释程序的工作目录设置为运行它的文件夹) in,并在文件夹上放置一个读锁定。)

那就是说,我不确定你为什么要在应用程序文件夹中复制MSI,因为Windows Installer会自行复制并将其放在%windir%\ Installer中。当您从快捷方式启动卸载时,安装程​​序会从您提供的MSI中读取产品代码,然后再返回到缓存的副本。

理想情况下,您应该取消批处理文件并放置msiexec.exe / i {product-code}的直接快捷方式 - 如果安装了产品,这将启动产品的安装/维护用户界面。如果您必须有批处理文件,则需要将其放在应用程序的安装根目录之外。