获取使用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前设置的值。
获取使用ClickOnce部署的应用程序的版本号的更多相关文章
- 为通过ClickOnce部署的应用程序进行数字签名
为通过ClickOnce部署的应用程序进行数字签名 ClickOnce是.NET用于Windows应用程序的一种便捷部署方式.不过由于便捷,导致缺少自定义操作的空间.比如需要对通过ClickOnce部 ...
- 以管理员身份启动ClickOnce部署的应用程序
ClickOnce方式部署应用简单方便,估计很多人都用过,但这种方式存在一定的“缺陷”,即以管理员方式启动应用的问题,虽然出于安全考虑可以理解,但给需要管理员权限才能正常运行的程序带来了一定的麻烦,这 ...
- ClickOnce部署疑难杂症:更新时部署与应用程序标识不一致问题。要安装此应用程序,请修改此文件的清单版本或卸载之前存在的应用程序。
使用ClickOnce部署winform应用程序.无论是安装或者自动更新都极为方便,但有时候一些疑难杂症也令人头疼 1.注意每次部署完成之后 setup.exe无需覆盖,只需要在Application ...
- C# ClickOnce部署WinForm程序
之前做过ClickOnce部署应用程序的项目,今天做一次全面的总结.那么这些都是微软提供方便分布式部署的相关解决方法,这种方法既有弊端,也有优点. 最大的缺点: 远程部署,不能更换安装目录:并且每次安 ...
- 使用ClickOnce发布Windows应用程序
前言 因本人工作需要,在一名非常非常好的老师的指导下,入门了C#,再次向老师表示感谢. 本人平时经常遇到的业务就是将数据下发给各部门,并让各部门再上报,此过程中经常会遇到数据格式不正确,数据错误等诸多 ...
- 转:ClickOnce部署Winform程序的方方面面
1. ClickOnce简介 微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所 ...
- ClickOnce部署
(1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋 ...
- ClickOnce部署(4):下载多个安装包
有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的.不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安 ...
- ClickOnce部署(2):自动更新
上次我们说了如何用最基本的方式用ClickOnce技术部署应用程序项目,本篇我们来认识一下如何让应用程序具备自动更新的功能. 我们依然通过实例来学习. 第一步,随便建一个应用程序项目,至于是控制台.W ...
随机推荐
- Java的一些常见问题,JRE,JDK,JVM,包等概念理解
Java常见错误: 文件名字应该与文件中public类的名字相同 public static void main(String[] args); 如何定位错误和解决错误. JVM,JRE,JDK解释和 ...
- Android—ZXing二维码扫描遇到的问题
最近工作中需要开发带有二维码扫描功能的软件(基于开源项目ZXing),遇到的问题记录一下,也希望给大家带来帮助. 1.首先因为扫描要开摄像机所以加权限是一定的,不然后面什么都不能进行 <uses ...
- IOS开发札记(2015-08-20)
View显示数据借助Model的一个比较好的理由也是因为:有时候从服务器获取的数据相同的value可能对应不同的key(服务端多人协作开发时经常会出现这种情况) 这里盗图描述一下使用Model的好处 ...
- 【代码笔记】iOS-通过颜色来生成一个纯色图片
一,效果图. 二,代码. RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // Do any additional se ...
- h5曲线滑动确认
h5项目需根据几条弯曲的线条让用户进行曲线式滑动,滑动时需实时响应某些样式,于是就有了下面这个实例.(可自定义多个子对象大小分别放在线条各处,以增加曲线滑动确认精度.) <!doctype ht ...
- jQuery对表格的操作及其他应用
表格操作 1.隔行变色:对普通表格进行隔行换色:单击显示高亮样式:复选框选中高亮 <!DOCTYPE html> <html> <head> <meta ht ...
- Sql--order by、desc降序、top
---------通过order by 语句进行排序: --1.降序order by 列名desc --2.升序order by 列名 或order by 列名asc --3.order by语句 ...
- Linux下解压超过4G的zip文件
从Windows平台通过FTP上传一个大小约为6G的zip文件到Linux系统(Oracle Linux Server release 5.7)上,解压过程中出现如下错误: 1: [root@gsp ...
- T-SQL 常用DDL语句
数据库操作 删除数据库 drop database database_name(数据库名) 修改数据库名 alter database database_name(原数据库名) modify name ...
- JVM之SerialOld收集器
Serial收集器的老年代版本 单线程收集器 标记-整理算法 stop the world Client模式下的虚拟机使用 Server模式下,搭配Parallel Scavenge使用及CMS发生C ...