1

我们想使用流行的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。是否有替代安装技术可以让我们做我们想做的事?

谢谢!

4

1 回答 1

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 允许我灵活地重建程序集并在需要时将它们作为补丁发布。

于 2010-11-02T22:18:13.603 回答