获取使用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前设置的值。

posted @ 2013-08-27 17:22 Parry 阅读(...) 评论(...) 编辑 收藏