Microsoft Installer:它可以在没有版本号更改的情况下升级产品吗?

时间:2010-11-02 19:17:00

标签: installer windows-installer installshield installscript-msi

我们希望使用流行的major.minor.update.build_number版本控制方案。我们的下一个产品更新将是1.0.1版。

我们的内部配置管理机制可生成发布版本和每日版本,所有这些都会自动打包为MSI。开发人员和QA会定期下载构建版本并使用它们更新测试平台,以验证错误修复等。

每个CM构建都会增加build_number字段,因此构建版本可能看起来像这样

1.0.1.001 // Release build  
1.0.1.002 // Daily build  
1.0.1.003 // Another Daily build  
1.0.1.004 // New Release build  

我们的问题是,由于我们的 ProductVersion 没有改变,微软的安装程序技术将不允许我们在我们的测试台上运行那些MSI作为更新。我们必须完全卸载现有产品并重新安装所需的MSI。

有没有办法让我们的MSI应用更新而不管ProductVersion标记?

我们使用InstallShield。是否有替代安装技术可以让我们做我们想做的事情?

谢谢!

1 个答案:

答案 0 :(得分:1)

在这种情况下,您应该可以进行小幅升级。如果您的目标是进行重大升级,则应该更改ProductVersion属性的前三个字段之一。

如果你的目标是向上游游泳,那么你需要在FindRelatedProducts和RemoveExistingProducts之间插入一个自定义动作来覆盖MSI的内置产品检测逻辑。基本上,您需要使用Msi API来查找UpgradeCode的已安装ProductCodes。

我个人推荐

Major.Minor.Build.Patch所以我增加的构建序列是

1.0.1.0 1.0.2.0 1.0.3.0 1.0.4.0 1.1.5.0 1.1.6.0 1.1.7.0

.0允许我灵活地重建程序集并在需要时将它们作为补丁发送。