安装 msi 时动态设置 ProductVersion

Set ProductVersion dynamically while installing msi

我在 VB.Net(在 VS 2010 中)中有一个 windows 安装项目。当我构建 MSI 时,ProductVersion 设置为默认值 (1.0.0.0)。

现在我想在安装时动态设置 ProductVersion(借助自定义操作或类似的东西)从数据库中读取 table,这样在安装 msi 之后, windows 控制面板或安装的 exe 文件属性中显示的产品是更新后的产品。

提前致谢。

您不能这样做 - ProductVersion 是 Windows 在开始安装之前使用的东西。这就是为什么您有时会看到 "another version of this product is already installed"。其他人在构建之后和安装之前更改 ProductVersion 的最简单方法是使用脚本在 MSI 的 属性 table 中更新 ProductVersion。如果您查看 Windows 工具包 SDK 中的 WiRunSQL.vbs 并知道要使用的 SQL 就可以了。您需要更新 Property.ProductVersion。此处的文档带有 link 示例:

https://msdn.microsoft.com/en-us/library/aa372021(v=vs.85).aspx