【问题标题】:VS2010 MSI setup projectVS2010 MSI设置项目
【发布时间】:2012-06-14 14:28:44
【问题描述】:

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

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

然后我将“版本”更改为 1.0.8,all 将 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 右键单击​​ > 安装,否则不会发生这种情况。



任何帮助表示赞赏。


编辑添加粗体

【问题讨论】:

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


    【解决方案1】:

    在两个版本之间更改 ProductCode。阅读更多关于major upgrades

    【讨论】:

    • 我发现这确实有效。但是,仅更改内部版本号是否被视为重大升级?我想只是做一些小的改动就被认为是一个补丁......
    • 我刚刚做了很多测试,你还需要更新安装项目的版本号...
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      相关资源
      最近更新 更多