ClickOnce部署(2):自动更新】的更多相关文章

Clickonce无痛自动更新是我最喜欢使用VSTO开发并Clickonce部署的特性之一,但这个自动更新,通常会更新整个程序文件,包含所有的引用dll和一些资源文件等. 一般来说,我们更新的都是主程序,那些引用dll和资源文件,除非是发布时的版本的确更新了,才有必要更新到用户的机器上,不然动不动所有文件都一起更新,更新需要下载的文件数量也太大,等待时间也太长,最终反而变得用户体验不够完美. 资源文件的问题还比较好解决,只要不把资源文件内嵌到程序集中,然后通过手动下载或程序代码自动检测有新增或更…
一.项目运行环境 项目采用的是.NET5开发的Web系统,独立部署在省内异地多台CentOS服务器上,它们运行在甲方专网环境中(不接触互联网),甲方进行业务运作时(一段时间内)会要求异地服务器开机上线,同时要求我们在总部进行驻场运维和技术支持. 二.自动更新需求 每年(次)的业务流程甲方会要求做出一些调整,要求在线的服务器可以自动更新. 异地服务器对使用人员处于黑盒模式,同时项目可以运行在root权限下. 三.自动升级方案对比 1.Jenkins+Gitlab+自动代码审查+人工代码审查+人工发…
上次我们说了如何用最基本的方式用ClickOnce技术部署应用程序项目,本篇我们来认识一下如何让应用程序具备自动更新的功能. 我们依然通过实例来学习. 第一步,随便建一个应用程序项目,至于是控制台.WPF还是WinForm就随意吧,我们的重点发布应用程序.比如这样: 为了更好的演示,我们可以在窗口上显示当前发布的版本号.我这里是一个WinForm项目,故我就用一个Label控件来显示当前发布版本. 注意,这里的版本号是ClickOnce发布的版本号,不是程序集的版本号.所以要使用Applicat…
使用ClickOnce部署winform应用程序.无论是安装或者自动更新都极为方便,但有时候一些疑难杂症也令人头疼 1.注意每次部署完成之后 setup.exe无需覆盖,只需要在Application.File中将最新的发布程序包拷进去,把*soft.application文件覆盖掉即可 2.部署与应用程序标识不一致问题,如下图的发布选项千万别乱动,否则客户会全部升级错误, 准备正式发布出去的时候这里一定要想清楚,千万别发布完了才想到改,那时候就晚了,这是血的教训啊! 3. 无法安装此应用程序,…
这几天尝试了利用github的webhook,当代码更新到github,我们的测试服务器自动更新最新的gitbub仓库代码. 先列几个大概步骤,有时间再补充详细 1 . 服务器生成ssh key,一般在个人的家目录下,root用户在  /root/.ssh/id_rsa.pub.配置到github 2 . php.ini配置开启 shell_exec  函数(可以在php中执行shell脚本) 3. 查看php的运行用户,下一步要用.在nginx配置文件中查看.一般是www或者nginx 4.在…
my-deploy : 由nodejs写的一个自动更新工具,理论支持所有语言(php.java.c#)的项目,支持所有git仓库(bitbucket.github等). Github 效果如何? 如果你的后端项目放在github.bitbucket等git仓库中管理 , 在你的服务器中配置好mydeploy,它会根据你的配置,自动检查是否需要拉取最新代码 , 并且自动帮助你更新. 支持方式 webhook 你需要在你的仓库的webhook中设置你的服务器地址+端口,my-deploy接收到仓库的…
1.安装 SVN 1.1先检查是否有安装 svn rpm -qa subversion #没有什么显示就说明没有安装过yum remove subversion #如果有安装就运行删除老版本yum install subversion #运行安装SVN 1.2创建SVN版本库(这里我们直接部署到Tomcat/webapps下,如果没有可以自行部署一个Tomcat) mkdir -p /usr/local/tomcat/webapps/svn 1.3创建版本库 svnadmin create /u…
突发奇想要搞一个ssl的服务器,然后我就打起了docker的主意,想着能不能搞一个基于Docker的服务器,这样维护起来也方便一点. 设想 想法是满足这么几点: .NET CORE on Docker Let's Encypt on Docker nginx on Docker用于反向代理 Let's Encypt证书有效期很短,需要能够自动更新 nginx与dotnet都提供了docker部署的方案,但是Let's Encypt的certbot提供的文档强调了这个方法不是很推荐,主要原因是从其…
C/S架构的应用程序需要支持自动更新功能,当新版本程序发布后,正在运行的客户端能检测到新版本的程序,通知用户是否下载更新.工作以来参与过几个自动更新模块的设计与维护,撰文总结自动更新模块设计与实现. 自动更新组件主要内容 1  版本比较.旧版本如何检测到新版本,版本信息是程序集自描述的,还是用单独的文件保存..NET程序集是自描述的,程序集包含以下几种版本信息,每个Assebmly包含三个Version AssemblyFileVersion : 存储在Win32资源中, CLR不关心这个版本号…
(1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本.http://baike.baidu.com/view/1390498.htm 如果你对这些理论的东西不感兴趣,没关系,上面所提及的内容你完全可以无视之.我们只要知道,ClickOnce是一种应用程序部署方式…
ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本.http://baike.baidu.com/view/1390498.htm 如果你对这些理论的东西不感兴趣,没关系,上面所提及的内容你完全可以无视之.我们只要知道,ClickOnce是一种应用程序部署方式即可.那什么是部署呢?…
winform实现自动更新并动态调用form实现 标签: winform作业dllbytenull服务器 2008-08-04 17:36 1102人阅读 评论(0) 收藏 举报  分类: c#2005(27)  版权声明:本文为博主原创文章,未经博主允许不得转载. winform 应用系统的部署问题,一直是个令人苦恼的问题.在2.0下,我们可以通过clickonce方式部署,但是这里要说的,是利用文件的操作来对系统进行更新. 为了方便用户作业,把实际的系统打包成DLL存在,而设计一个自动更新的…
为通过ClickOnce部署的应用程序进行数字签名 ClickOnce是.NET用于Windows应用程序的一种便捷部署方式.不过由于便捷,导致缺少自定义操作的空间.比如需要对通过ClickOnce部署的应用程序的主程序(exe文件)进行数字签名就比较麻烦.下面简单分享下,在既能获得ClickOnce的便捷功能(包括VS自动生成ClickOnce部署包)的同时,又能方便的对应用程序进行签名. 1,为什么要进行数字签名 为了保证系统的安全,现在Windows(比如Windows 8)对于通过网络上…
作者:圣殿骑士 出处:http://www.cnblogs.com/KnightsWarrior/ 关于作者:专注于微软平台项目架构.管理和企业解决方案.自认在面向对象及面向服务领域有一定的造诣,熟悉设计模式.TDD.极限编程.领域驱动.架构设计.敏捷开发和项目管理.现主要从事ASP.NET MVC.WPF.WCF/Web API.SOA.Microsoft Azure等云计算方面的项目开发.架构.管理和企业培训工作.如有问题或建议,请多多赐教! 本文版权归作者和博客园共有,欢迎转载,但未经作者…
自动更新介绍 我们做了程序,不免会有版本升级,这就需要程序有自动版本升级的功能.应用程序自动更新是由客户端应用程序自身负责从一个已知服务器下载并安装更新,用户唯一需要进行干预的是决定是否愿意现在或以后安装新的更新. 客户端程序要完成自动更新必须要做三件事情:检查是否有更新:当发现有更新时,开始下载更新:当下载完成时,执行更新操作:分别分析一下这三个步骤: 1.检查更新 客户端要正确检查是否有更新需要三个必要过程: (1)到哪里去更新.即目标服务器的URI(URL或具体目录) (2)何时去检查.即…
1. ClickOnce简介 微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所需的用户交互最少. 使用用ClickOnce主要解决了程序部署中的几个问题: 更新应用程序困难.使用 Microsoft Windows Installer 部署,每次更新应用程序时,用户都可以安装更新(msp 文件)并将其应用到已安装的产品中:使用 ClickOnce 部署,可自动提供更新.只有更…
ClickOnce部署 http://www.cnblogs.com/weixing/p/3358740.html#undefined (1):一些发布方式 ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌.因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本.http://baike.baidu.com/view/1390498.…
Excel催化刘插件使用Clickonce的部署方式发布插件,以满足用户使用插件过程中,需要对插件进行功能升级时,可以无痛地自动更新推送新版本.但Clickonce部署,对用户环境有较大的要求,前期首次安装,比较波折,但相对于后续的自动更新的回报,笔者自我感觉还是很值得的.Clickonce部署过程中,要求导入数字证书和设置Excel共享路径这两个步骤,本篇开源代码主要讲述这个过程的自动化处理的代码实现,同样用的是Console程序. 为了还原一个干净无侵扰的网络世界,本文将不进行大规模地分发,…
有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的.不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安装其他应用程序. 我们还是说说真实的例子,这样好理解一点.假设我开发了两个应用程序,一个叫App1,另一个叫App2.我把这两个应用程序同时发布. 我们可以在IIS服务器的根目录下新建两子目录,我们分别把这两个应有程序发布到这两个文件夹下,如下面两张截图所示. 第一个应用 第二个应用 最后,重点是如何做这个&…
在讲述证书的使用前,我们先来了解另外一个知识——发布网页. 在前面所说的ClickOnce部署中,如果大家细心的话,应该会发现这么个问题. 如上图,发布成功后,在"输出"窗口中提示无法查看发布网页. 好,我们先不管那是什么,现在我们不妨发布一个项目,但在"项目属性"窗口中的"发布"选项卡上,点击"选项"按钮,打开"发布选项"对话框. 在"说明"页中输入基本信息,产品名称和发布者. 然后进…
引子 在编写使用ClickOnce部署的应用程序时,需要在程序的标题栏.软件变更记录.软件关于等页面读取显示当前的版本号. 之前很傻瓜的做法就是在Resource中维护一个string值,在使用到的地方读取,有更新修改Resource即可. 其实这样做也有一个好处,就是自己可以控制需要显示的版本号,版本信息显示到Build即可,而可能不需要显示到Revision. ClickOnce的版本值 这样每次修改都很麻烦,当不需要去控制显示的版本值时,直接读取Publish填写的版本值即可. 下面的代码…
写了一个自动更新服务网站和自动更新客户端.基本功能测试完毕.记录下 项目地址:https://github.com/TeemoHQ/AutoUpdate 需求 自动集成,回退版本,守护进程,服务端操作,更新维度,脚本控制(bat)多个客户端. 介绍     AutoUpdateServer采用Nancy WEB框架. 功能:1.提供上传文件的接口 2.匹配文件并且建立多个不用客户端的文件仓库 3.打包,提供更新包, AutoUpdateClient采用控制台 功能:1.循环请求服务端,检查当前客…
由于chrome浏览器自动更新,导致 macaca运行报错,重新安装和更新chrome-driver 之后,还需要把chrome浏览器降级到50版本: 但是chrome会自动更新,所以需要禁止.找到这个方法试验一下: 下面内容转自:http://www.chromi.org/archives/11523 自动更新是 Chrome 非常实用的功能之一,但在有些情况下可能还是有关闭自动更新的需求,比如需要用某一个具体的版本来测试一些东西,或者更新之后反而出现了新的 Bug等等.由于一般人没有这样的需…
转载自 http://dotnet.chinaitlab.com/DotNetFramework/914178.html 关于.NET windows软件实现自动更新,本人今天写了一个DEMO,供大家参考.         大家先看下效果图:        主要涉及到两个方面 1. 更新软件主项目和DLL文件 2.升级包自身的更新 1.   一个项目通常包括主项目和类库项目,主项目就是启动项目,以.exe结尾,类库项目主要是DLL, 简单的说更新就是将软件本地的主项目和类库项目进行更新. 可以采…
转自:http://blog.csdn.net/wwj_748/article/details/8195565 接触到一个很实用的技术,那就是软件自动更新.一般开发者是通过自行在应用平台添加更新版本的apk.这样做,如果是在一两个应用平台发布应用,那还说得过去,工作量还不是很大.但大家都知道,Android开发者是比较苦逼的.由于开源所致,出现了N多应用市场.如果想赚取更多的收入,那就要在各个应用市场进行更新.那就悲催咯. 比较出名的一些应用市场有如下: 那如何实现软件自动更新,下面是具体实例:…
ClickOnce方式部署应用简单方便,估计很多人都用过,但这种方式存在一定的“缺陷”,即以管理员方式启动应用的问题,虽然出于安全考虑可以理解,但给需要管理员权限才能正常运行的程序带来了一定的麻烦,这导致部分人员放弃了ClickOnce发布. 经过查找相关资料,发现还是有办法解决这个问题的,具体操作如下: 1.修改 manifest 文件 <requestedExecutionLevel level="asInvoker" uiAccess="false" /…
c#自动更新+安装程序的制作 (转)  http://blog.csdn.net/myhuli120/article/details/6927588 一.自动更新的实现 让客户端实现自动更新,通常做法是在客户端部署一个单独的自动更新程序.主程序启动后,访问服务端,检查配置文件是 否有更新版本,有更新版本就启动更新程序,由更新负责下载更新版本,并更新客户端程序,流程如下: 当流程进行到红色部分的是后就调用更新程序进行更新. 1)版本判断: 客户端和服务端都部署同一个版本文件,客户端登陆时发送验证给…
一.自动更新的实现 让客户端实现自动更新,通常做法是在客户端部署一个单独的自动更新程序.主程序启动后,访问服务端,检查配置文件是否有更新版本,有更新版本就启动更新程序,由更新负责下载更新版本,并更新客户端程序,流程如下: 当流程进行到红色部分的是后就调用更新程序进行更新. 1)版本判断: 客户端和服务端都部署同一个版本文件,客户端登陆时发送验证给服务端判断版本是否一致. Version.xml代码 <iq xmlns="http://www.dynastech.com/xmtp"…
由于8月份上旬公司开发一款桌面应用程序,在前端开发程序打包更新时遇到一些困扰多日的问题,采用electron-builder最终还是得到解决~ 以下是踩坑的过程及对electron打包与更新思路的梳理,electron打包与更新的正确姿势应该如下图所示 下面将逐一展开描述说明     一.windows系统下环境配置 NPM是随NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器下载并安装别人编…
定义及分类 1.1 定义 在web开发环境下,所谓热部署,即在不重新部署webapp的情况下,实时将工程代码改动更新到web容器中(例如tomcat).其原理可以类比ajax的作用,即局部刷新工程资源文件.从而节省web项目开发工程中,项目编译与重新部署的时间. 1.2 分类 按配置复杂程度一般分为 前台页面相关资源文件(包括js/Html页面/图片等)的热部署配置与后台逻辑资源文件(class文件等)的热部署. 热部署细节 2.1 前台页面的热部署 进入运行环境配置页面 Run->Edit C…