如何使用.NET 2 System.Configuration.Install检测更新?
我为我的安装程序创建了一个从System.Configuration.Install派生的类。如何使用.NET 2 System.Configuration.Install检测更新?,.net,visual-studio,installation,.net,Visual Studio,Installation,我为我的安装程序创建了一个从System.Configuration.Install派生的类。 但是,当我尝试更新应用程序时,正在调用Uninstall()中的代码。 如何检测到用户正在尝试更新而不是卸载 也许比我更能解释: 我的问题归结为:当 用户执行更新(即双重更新) 单击MyAppVer2.msi时 已安装MyAppVer1.msi) 在我的 先调用安装程序,但我没有 没有明显的属性可供检查 在该方法中检测 正在执行更新,以便 可以适当地分支我的代码 瞎猜,但我会先检查一下房子,看看有没有
但是,当我尝试更新应用程序时,正在调用Uninstall()中的代码。
如何检测到用户正在尝试更新而不是卸载 也许比我更能解释: 我的问题归结为:当 用户执行更新(即双重更新) 单击MyAppVer2.msi时 已安装MyAppVer1.msi) 在我的 先调用安装程序,但我没有 没有明显的属性可供检查 在该方法中检测 正在执行更新,以便 可以适当地分支我的代码
瞎猜,但我会先检查一下房子,看看有没有什么问题。如果没有帮助,则在传递给的savedState参数中可能有某些内容
最后一次机会是,将子安装程序设置为合适的安装程序。Visual Studio附带的部署项目在处理最简单的场景之外的任何事情时都严重不足 在您的情况下,您需要执行以下操作之一:
您的安装项目中有一个默认设置将“卸载”以前的版本,关闭此标志,您就不必担心了 你为什么不能使用WIX,因为WIX可以更有效地处理这类事情,请看升级教程,关闭该选项,当我查看控制面板->添加/删除程序时,我会看到各种条目。我安装的每个版本都有一个。是的,这就是windows安装程序的崩溃。正如其他海报所提到的,您可能想看看其他解决方案……我只知道该选项是唯一具有默认功能的有效解决方案。谢谢。在Installer.Context或savedState中没有任何帮助。那么我怀疑您只需要提示用户,或者为InstallShield或其他东西买单。有很多人抱怨.NET对MSI的支持太差了,但是没有人打算马上修复它。