VS2010 MSI安装项目

时间:2012-06-11 16:45:59

标签: visual-studio-2010 windows-installer setup-project setup-deployment

浏览网页时我没有看到这个问题,所以这里是:

我使用.msi文件(与右键单击 - >安装,安装,选项)在我的计算机上安装“Version 1.0.7”产品。

然后我将“Version”更改为1.0.8,所有将Assembly Version / AssemblyFileVersion属性更改为1.0.8.0。我删除了旧的主输出,并添加了一个新的输出,我确保在KeyOutput扩展列表下版本是正确的。我这样做是因为在我将所有程序集版本更改为1.0.8.0之后它没有更新,并且它保持在1.0.7.0(之前的版本)。

我构建了我的安装项目并转到包含新的1.0.8 .msi文件的文件夹。我双击并获得“应用程序已存在,删除现有的添加/删除程序”(或类似)对话框,并停止安装。

所以我查了一下:
ProductCode - 它们在新旧版本之间是相同的, UpgradeCode - 也是如此,
/> RemovePreviousVersion 属性设置为两个版本之间的 True 。这是我检查的内容,因为我通常在所有其他搜索中找到解决方案,但它无法正常工作。

所以我没有安装1.0.7版本,安装1.0.8并且一切正常。仍然没有解决我的问题,我不应该得到unistall第一个提示。注意:我一直在“Everyone”上安装。

我再次取消了1.0.8(此时,没有安装/安装版本),并尝试了这个:
1.通过右键单击其安装项目并使用“安装”选项,从.msi文件安装1.0.7安装1.0.7。 2.右键单击1.0.8安装项目并从那里使用Install选项。
3.没有错误/对话框弹出,旧版本似乎首先被取消,然后我继续安装,新版本在计算机上。这就是我想要的!

正如你在这里看到的,我需要能够使用1.0.7 .msi文件进行安装,然后当我需要修补/修复/更新时,我需要能够1.0.8 .msi才能显示“已经存在” “提示只是覆盖/合并,但除非我在安装项目中使用VS2010右键单击>安装,否则不会发生这种情况。



任何帮助表示赞赏。


编辑添加了粗体

2 个答案:

答案 0 :(得分:4)

更改两个版本之间的ProductCode。阅读major upgrades

的更多信息

答案 1 :(得分:0)

安装次要升级(当您更改ProductVersion而不是ProductCode时就是这种情况),当且仅当计算机上存在先前版本时,才需要指定REINSTALL。有一些方法可以通过在Property表中指定它并使用自定义操作清除它来为资源管理器启动的方案执行此操作,但使用启动程序或使用主要升级来处理它更常见。