【问题标题】:Set ProductVersion dynamically while installing msi安装 msi 时动态设置 ProductVersion
【发布时间】:2015-11-06 05:48:47
【问题描述】:

我在 VB.Net 中有一个 Windows 安装项目(在 VS 2010 中)。 ProductVersion 在我构建 MSI 时设置为 default(1.0.0.0)。

现在我想在安装时动态设置 ProductVersion(借助自定义操作或类似的东西)从数据库表中读取,以便在安装 msi 后,Windows 控制面板中显示的产品版本或者安装的exe文件属性,是更新的那个。

提前致谢。

【问题讨论】:

  • 您为什么要这样做? IE。基本上,这看起来像是在“愚弄”系统。您不能在构建 MSI 时将 ProductVersion 设置为正确的值(这是常见做法)吗?
  • 是的。但是 productversion 应该从数据库值动态设置,而不是为每个版本手动设置。基本上是数据库团队负责版本管理,而不是编程团队,所以我想到了这个过程..
  • 您可以将自定义操作添加到您的项目 (.vbproj) 以在构建时设置该版本(即从“数据库”中提取该值,无论它是什么,并将其设置为您的变量可以在安装程序文件中使用)。请注意,您可以在 WIX 文件中使用环境变量和项目属性。

标签: vb.net visual-studio-2010 vbscript windows-installer setup-project


【解决方案1】:

您不能这样做 - ProductVersion 是 Windows 在开始安装之前使用的东西。这就是为什么您有时会看到“已安装此产品的另一个版本”的原因。其他人在构建之后和安装之前更改 ProductVersion 的最简单方法是使用脚本来更新 MSI 属性表中的 ProductVersion。如果您查看 Windows 工具包 SDK 中的 WiRunSQL.vbs 并知道要使用的 SQL,就可以做到。您需要更新 Property.ProductVersion。此处包含示例链接的文档:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2020-11-28
    • 1970-01-01
    相关资源
    最近更新 更多