【发布时间】:2009-12-09 03:38:55
【问题描述】:
我已经用 C# 编写了一个应用程序,并设置了一个单独的安装项目来为该应用程序创建 MSI 安装程序。我想知道是否可以检索安装程序的版本并将其显示在我的应用程序的“关于”对话框中。
【问题讨论】:
-
我也一直想知道怎么做!
-
请说明您是希望将其硬编码到您的 UI 中还是在运行时动态查找
标签: c# installation
我已经用 C# 编写了一个应用程序,并设置了一个单独的安装项目来为该应用程序创建 MSI 安装程序。我想知道是否可以检索安装程序的版本并将其显示在我的应用程序的“关于”对话框中。
【问题讨论】:
标签: c# installation
一般而言,您会查看当前程序集的版本以获取此类内容,查找 MSI 需要通过注册表搜索来查找 MSI,然后通过一些互操作来使用某些 COM 接口提取版本。
要从这些方面开始,请看这里:http://www.codeproject.com/KB/cs/msiinterop.aspx,这是很多工作。
而只是使用:
Assembly.GetExecutingAssembly().GetName().Version;
并确保您的应用程序版本与您的 msi 版本相匹配。
【讨论】:
MSI 就像一个具有完整 API 的数据库。您的版本号和其他相关数据位于 MSI 的数据库中。
您可以使用类似 sql 的语法查询数据库。
http://msdn.microsoft.com/en-us/library/aa369426(VS.85).aspx
如何查询的示例: http://msdn.microsoft.com/en-us/library/aa372021.aspx
更好的例子和脚本:
http://msdn.microsoft.com/en-us/library/aa368562(VS.85).aspx
【讨论】:
一个想法是将安装程序版本存储在注册表中或在安装时在 application.exe.config 中预定义。 稍后关于框从那里加载版本号。
【讨论】: