如何在C#中以编程方式获取MSI产品版本

时间:2010-05-06 11:17:59

标签: c# visual-studio-2008 windows-installer version

应用程序是否可以使用MSI产品版本?

我试过,Assembly.GetExecutingAssembly()。GetName()。版本, 但它给了我一个与我想要的不同的组装版本。我可以在适当的位置编辑这个值,但如果我只是从MSI安装程序显示版本号就会很方便。

另一点是,MSI版本号有3个部分,每个部分用'。'分隔,例如 1.0.3,其中装配编号有4个部分,例如1.0.2.4。

由此我得出结论,我们必须单独更新这些值,并且无法将它们同步。

我的理解是否正确?

1 个答案:

答案 0 :(得分:3)

MSI允许为其版本指定四个部分,尽管它只会比较前三个部分(这可能会在尝试仅使用第四部分中的更新进行次要升级时引起混淆)。因此,如果您的安装程序解决方案是可编写脚本的,那么您当然可以在某种构建脚本中同步您的数字。

至于从您的应用程序显示MSI版本,您需要知道您的ProductCode GUID,以便MSI API可以查找其版本。或者,您可以编写一个包含更稳定位置版本的注册表项,并在您的应用程序中读取该文件。