ClickOnce手动更新
if (ApplicationDeployment.IsNetworkDeployed == true)
{
ApplicationDeployment thisDeployment = ApplicationDeployment.CurrentDeployment;
// this.Text = "正在检测更新";
this.txt_version.Text = thisDeployment.CurrentVersion.ToString();
if (thisDeployment.CheckForUpdate() == true)
{
thisDeployment.UpdateAsync();
thisDeployment.UpdateCompleted += (s, e) =>
{
if (e.Error == null)
{
MessageBox.Show("更新完毕,将要重启程序!");
Application.Current.Shutdown();
System.Windows.Forms.Application.Restart();
}
else
{
MessageBox.Show(e.Error.ToString());
}
};
thisDeployment.UpdateProgressChanged += (s, e) =>
{
string progressText = String.Format("{0:D}K out of {1:D}K downloaded - {2:D}% complete", e.BytesCompleted / 1024, e.BytesTotal / 1024, e.ProgressPercentage);
downloadStatus.Text = progressText;
};
}
else
{
MessageBox.Show("并没有新的版本进行更新!");
}
}
else
{
MessageBox.Show("这不是网络发布的程序");
}
参考文章:
http://www.cnblogs.com/sucsy/archive/2011/09/23/2186218.html
http://www.cnblogs.com/luyu/archive/2005/12/03/289938.html
http://www.cnblogs.com/chenxizhang/archive/2009/05/22/1486736.html
ClickOnce手动更新的更多相关文章
- ios开发 数据库版本迁移手动更新迭代和自动更新迭代
数据库版本迁移顾名思义就是在原有的数据库中更新数据库,数据库中的数据保持不变对表的增.删.该.查. 数据持久化存储: plist文件(属性列表) preference(偏好设置) NSKeyedArc ...
- ios开发数据库版本迁移手动更新迭代和自动更新迭代艺术(二)
由于大家都热衷于对ios开发数据库版本迁移手动更新迭代和自动更新迭代艺术(一)的浏览下面我分享下我的源文件git仓库: 用法(这边我是对缓存的一些操作不需要可以省去):https://github.c ...
- Flash插件flashplugin-nonfree的手动更新
Debian,nonfree库里有flashplugin-nonfree,这个就是网页浏览器的Flash插件了.不过它好像不会自动更新,每次更新网页浏览器后都会提示flashplugin版本过低.但f ...
- 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验
分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...
- WPF: 使用CommandManager.InvalidateRequerySuggested手动更新Command状态
WPF判断命令(Command)是否能够执行是通过ICommand.CanExecute事件,在实际程序中路由命令一般是通过CommandBinding来使命令得到实际操作代码,但是这个CanExec ...
- jenkins笔记:手动更新插件
jenkins服务器连不了外网,需要手动更新插件.上https://wiki.jenkins-ci.org搜索相应的插件,下载Latest Release-最新版本的.hpi.在系统管理->插件 ...
- 小菜鸡deepin系统手动更新火狐浏览器
前言 Deepin 是个好系统,让我看到国产系统的希望,也让我看到Linux桌面化和大众化的可能(如果你想抬杠:Deepin只是Linux魔改没什么好显摆的.那--你开心就好 ^ _ ^ ).虽然有一 ...
- android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
- ubuntu 手动更新源 以及使用sudo update与upgrade的作用及区别
一.今天更新一下我的ubuntu系统,用了几个源发现不怎么好用 上网查了一下发现有说阿里云的源挺好用 然后我试了一下 下载速度还挺快,下面分享一下怎么手动添加源列表 1.最好先做一下备份 sudo c ...
随机推荐
- 【UGUI源码分析】Unity遮罩之Mask详细解读
遮罩,顾名思义是一种可以掩盖其它元素的控件.常用于修改其它元素的外观,或限制元素的形状.比如ScrollView或者圆头像效果都有用到遮罩功能.本系列文章希望通过阅读UGUI源码的方式,来探究遮罩的实 ...
- JQuery常用属性操作,动画,事件绑定
jQuery 的属性操作 html() 它可以设置和获取起始标签和结束标签中的内容. 跟 dom 属性 innerHTML 一样. text() 它可以设置和获取起始标签和 ...
- Modify File Descriptor Limit on Linux
System-wide File Descriptor Limit Get current value: sysctl fs.file-max modify max fd limit: sysctl ...
- html 去除重复边框
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...
- Golang语言系列-14-单元测试
单元测试 字符串切割函数 package split_string import ( "fmt" "strings" ) // Split:切割字符串 // e ...
- Java中的形式参数和实际参数
一.概念 1.形式参数: 就是在定义函数或过程的时候命名的参数. 通俗讲就是一个记号. 2.实际参数: 就是在执行时,调用函数或过程时,传递给函数或过程的参数. 通俗讲就是实际值. 3.参数: 就是一 ...
- NOIP 模拟 $31\; \rm Cover$
题解 \(by\;zj\varphi\) 因为对于所有区间,都只有包含和被包含关系,这就是一个树形结构. 设 \(\rm f_{i,j}\) 表示在第 \(\rm i\) 个节点,最多被覆盖 \(\r ...
- noip模拟8
T1 星际旅行 题目描述 一个图存在欧拉路的条件是有\(2/0\)个点有奇数个出度,把一条无向边拆成两条,所以可以选择拆两个自环.一个自环一条边.连接同一个点的边. 先判断图是否是边联通,不联通则输出 ...
- springboot如何使用事物注解方式
1.在启动类Application中添加注解@EnableTransactionManagement import tk.mybatis.spring.annotation.MapperScan; i ...
- commandBinding 的命令
<Window x:Class="WpfApplication1.Window29" xmlns="http://schemas.microsoft.com/win ...