获取使用ClickOnce部署的应用程序的版本号
引子
在编写使用ClickOnce部署的应用程序时,需要在程序的标题栏、软件变更记录、软件关于等页面读取显示当前的版本号。
之前很傻瓜的做法就是在Resource中维护一个string值,在使用到的地方读取,有更新修改Resource即可。
其实这样做也有一个好处,就是自己可以控制需要显示的版本号,版本信息显示到Build即可,而可能不需要显示到Revision。
ClickOnce的版本值
这样每次修改都很麻烦,当不需要去控制显示的版本值时,直接读取Publish填写的版本值即可。
下面的代码即是读取ClickOnce版本值的方法。
//获取Publish的版本 private Version GetRunningVersion() { try { return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion; } catch { return Assembly.GetExecutingAssembly().GetName().Version; } }
这里需要注意的是,当在本地调试时,获取到的是Assembly中的版本值,即如下面在项目属性页面中设置的值。
而当用户使用ClickOnce安装后,读取到的即是在Publish前设置的值。