msi安装程序不会提示用户进行升级

时间:2011-05-08 14:10:37

标签: c# windows-installer installscript-msi

我有一个简单的msi安装程序setup.exe(通过VS2010创建)。在第一次安装时一切正常,问题出在第二次安装: 1. msi设置是:   a.RemovePreviousVersions设置为TRUE。 2.我升级了安装版本(第二次安装)编号,然后按OK   当我问我是否要升级产品代码时。

此时我重新编译了msi并双击了setup.exe。 问题: 我希望安装程序会检测到已经安装了以前的版本 并问我是否要删除\升级它。 会发生什么情况是安装程序会自动将已安装的产品升级到新版本而不会询问任何内容......

有没有办法配置msi项目以便它提示“Upgrade \ Remove”屏幕????

非常感谢..

2 个答案:

答案 0 :(得分:1)

我发现这个article非常有帮助。特别是:

  

•如果新的MSI文件具有相同的内容   ProductCode和PackageCode为   已安装的产品,   Windows表示您必须修复   或删除产品

enter image description here

  

删除卸载产品,但是   修复可能会更加混乱。

     

修复不使用新的MSI文件   修理产品,也不是   更新您之前安装的内容。   相反,它修复现有的   安装产品。也就是说,它表现得很好   好像你去了原来的MSI   用于安装现有文件   产品,选择上下文菜单,   并选择了修理。 (注意:修理可以   也可以从添加/删除启动   程序。)

     

•如果新的MSI文件具有相同的内容   ProductCode作为已安装的产品   但是,不同的PackageCode,你会   收到一条消息表明   另一个版本的产品是   已安装。

答案 1 :(得分:1)

我没有使用VS安装程序,但它受到严格限制。从技术上讲,您的升级包必须具有

  1. 新产品代码
  2. 与之前产品相同的升级代码
  3. 您还需要按正确的顺序将FindRelatedProducts和RemoveExistingProducts添加到InstallE表中。您可以在其上添加一些MSI guis,但这意味着您必须使用Orca编辑器手动编辑msi。一种更简单的方法可能是使用Wix工具包,您可以获得更多自由。 您已经回答了there