.NET版本号(安装程序版本)

9

我正在尝试为我的WinForms应用程序添加一个功能,该功能会在主屏幕上打印版本号。目前我已经有以下代码:

txtVersion.Text = ProductVersion.ToString();

这告诉我程序的版本 - 一切都很好。

然而,我理想中希望它能够获取用于创建msi的安装程序的版本。有没有办法从安装的程序内部查询此信息,或在安装过程中以某种方式传输信息?

4个回答

4

但是每次版本号增加时,ProductCode难道不会更新吗? - Paul Michaels
如果您进行了重大升级,是的。如果您正在使用重大升级,则可以使用::MsiEnumRelatedProducts()并传递您的UpgradeCode(不应更改)来获取ProductCode,然后使用其他API。再次强调,这并不是微不足道的,但也不是非常困难。 - Rob Mensching

1

我认为最好不要从安装程序中获取应用程序版本,而是从应用程序的 AssemblyInfo.cs 文件中获取安装程序版本。


0
您可以在安装过程中将版本保存在注册表键中,然后从程序中查询该注册表键。

0

你可以通过使用Wix3在安装程序(MSI)中的自定义操作来完成这个任务。

以下链接可以帮助你入门:

Sourceforge上的WIX

Wix教程


1
不需要自定义操作,已经有内置的[ProductVersion]。应尽量避免使用自定义操作。 - Rob Mensching

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接