MSI无法卸载

时间:2019-03-05 19:18:39

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

很抱歉,如果这是重复的话,但是我无法通过Google找到我要的东西(主要是因为我不知道要问什么)。

tl; dr-有没有办法让我的C#VS Installer项目在更新版本安装过程中忽略任何版本错误或以前安装的丢失文件?

长版:我创建了一个C#应用程序,其中包含6个文件(3个程序,2个服务和一个DLL)。我在VS中使用MSI部署项目来创建和分发这些文件,注册DLL并安装服务。当防病毒或恶意软件应用程序从系统中删除我的文件(和/或注册表项,服务等)时,问题开始。为了安装我的应用程序的新版本,MSI必须能够卸载旧版本。此时,安装失败,因为文件或服务已更改,并且需要原始MSI软件包。由于我的客户通常不保留原始照片,因此很难找到原始照片。还有一些情况,当我不了解时,客户端需要对可执行文件进行自定义更改。我只需要更改文件并将其复制到用户安装文件夹即可。这进一步激怒了MSI Gods,因为文件版本现在与安装程序放置的版本不同。如何轻松删除应用程序的旧版本并安装新版本?我正在计划进行重大修订,并期望在安装一百多个左右之前会遇到很多麻烦。为了避免这些问题,我将来还会/应该考虑什么?我没有理解什么?

1 个答案:

答案 0 :(得分:1)

范围 :现在,这一次有很多问题。 Firstly, how large is your distribution? How many machines are we talking about?

FixIt You can try this FixIt tool from Microsoft作为“快速修复”,但是至少可以说,在许多计算机上手动运行它很麻烦。不知道它是否可以自动化。没尝试过。

MSI卸载 :MSI通常不需要卸载,除非它错误地调用了 {{1 }} 标准操作或自定义操作会产生一些奇怪的结果。这个旧答案会更详细地说明: Why does MSI require the original .msi file to proceed with an uninstall?

主要升级卸载 :可能是在重大升级过程中,某些源代码解析正在进行中-坦率地说,我不确定。您是否尝试过手动调用卸载?换句话说,仅运行卸载命令,而不是在旧版本之上安装新版本,是否进行重大升级卸载? 如果有机会,我会进行测试

新安装位置 :作为一种解决方法,您可以将新版本安装在与旧版本不同的位置,并将其与以前的版本分离。在COM服务器和其他全局注册方面可能会有冲突,但是如果没有,您可以将旧版本保留在原处(可能删除其快捷方式)并保留在原处。紧急“解决方案”。


自我修复/弹性 :MSI“知道”您安装的内容。它会尝试主动维护该安装状态,如下所述:Why does the MSI installer reconfigure if I delete a file?不要与MSI对抗-它会反击。尝试遵循该范例-否则您将乘风车:-)。


Virustotal.com:针对恶意软件包含假阳性检测和文件隔离的一种措施是使用一种在线服务,该服务通过许多恶意软件扫描程序扫描您的二进制文件。 Virustotal.com就是这样的服务。上传完成的设置,然后上传二进制文件,以查看对二进制文件有哪些不同的工具。很抱歉,如果这很明显,请补充给其他人阅读的提示。


链接

相关问题