silent uninstall msi package命令没有管理权限

时间:2013-03-17 15:12:28

标签: c# .net visual-studio-2010 windows-installer setup-project

我正在尝试从我的visual studio项目中卸载一个程序,但这似乎要求我作为管理员运行vs ....所以我尝试从cmd执行此操作来调试它。

我已设法使用cmd:

中的此命令卸载msi安装项目安装

msiexec / x {3A40307D-6DF2-4412-842F-B1D848043367} / quiet,但只有当我作为管理员启动cmd时才有效,没有管理员权限它不会卸载。我做错了什么,是否有另一种方法来获得我想要的结果?

我希望能够无需卸载应用程序,而无需要求用户以管理员身份登录。

编辑:

这是日志的结果:

错误1001.错误1001.无法删除文件C:\ ProgramData \ XXX.InstallState。 DEBUG:错误2769:自定义操作_F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall未关闭1 MSIHANDLE。 安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2769.参数是:_F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall,1, CustomAction _F6174138_B428_4AB6_9FEF_C4DD7A69BDC0.uninstall返回实际的错误代码1603(注意如果在沙箱中发生翻译,这可能不是100%准确) 行动结束17:54:40:InstallExecute。返回值3。 行动结束17:54:40:安装。返回值3。 MSI(s)(F0:3C)[17:54:40:355]:产品:XXX - 去除失败。

2 个答案:

答案 0 :(得分:0)

看来你在这里有几个选择。所有这些都需要创建一个从一开始就不需要管理员权限的msi。如果msi从一开始就要求它们(例如,你无法控制msi的创建),那么就无法绕过它。这一切都取决于正在编辑的文件是否真的需要管理员权限。看看这个答案:How can I create a windows installer MSI that does not require admin access

答案 1 :(得分:0)

日志文件中的错误表明自定义操作正在崩溃。您需要调查该问题的根本原因。我的猜测是自定义操作需要提升(管理员权限)才能正常工作,但不会标记为延迟(即在MSI提升时在部件期间运行)。

如果从“添加/删除程序”(“程序和功能”)启动MSI的卸载,则不会提示您输入提升的凭据。因此根本问题可能就是这种自定义操作。