我为我的安装程序创建了一个派生自System.Configuration.Install的类 但是当我尝试更新应用程序时,正在调用Uninstall()中的代码 如何检测用户是否尝试更新而不是卸载?
也许this post比我解释得更好:
我的问题归结为:什么时候 用户执行更新(即双倍 当他们点击MyAppVer2.msi时 已经安装了MyAppVer1.msi) 我的内部的卸载方法 首先调用安装程序,但我有 没有明显的财产来检查 在这个方法里面来检测一个 正在执行更新以便我 可以适当地分支我的代码。
答案 0 :(得分:1)
您的安装项目中有一个设置默认情况下会“卸载”以前的版本,关闭此标志,您就不必担心了!
答案 1 :(得分:0)
盲目猜测,但我首先检查Installer.Context属性parameter。如果没有帮助,saveState参数中可能会有一些内容传递给Uninstall。
最后一次机会是prompt the user,并将子安装程序设置为适当的。
答案 2 :(得分:0)
Visual Studio附带的部署项目严重不足以处理除最简单场景之外的任何事情。
在您的情况下,您需要执行以下操作之一:
答案 3 :(得分:0)
有没有理由不能使用WIX,它可以更有效地处理这类事情,请查看升级教程,Here