2

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

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

然后我将“版本”更改为 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 第一个提示的问题。注意:我一直在“所有人”上安装。

我再次卸载了 1.0.8(此时,不存在/未安装任何版本),并尝试了以下操作:
1. 从 .msi 文件安装 1.0.7通过右键单击其安装项目并使用“安装”安装 1.0.7选项。
2. 右键单击​​ 1.0.8 安装项目并从那里使用安装选项。
3.没有错误/对话框弹出,老版本好像先卸载了,然后我继续安装,新版本在电脑上。这就是我要的!

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



任何帮助表示赞赏。


编辑添加粗体

4

2 回答 2

4

在两个版本之间更改 ProductCode。阅读有关重大升级的更多信息

于 2012-06-12T05:28:51.620 回答
0

当且仅当机器上存在以前的版本时,安装次要升级(当您更改 ProductVersion 而不是 ProductCode 时就是这种情况)需要指定 REINSTALL。对于资源管理器启动的场景,有多种方法可以通过在属性表中指定它并使用自定义操作将其清除,但更常见的是使用启动器或使用主要升级来处理它。

于 2012-06-12T11:36:33.093 回答