我就以一个计算字符长度的程序为例子吧
界面如下

代码如下

[C#] 纯文本查看 复制代码
01
02
03
04
private
void  button1_Click(object
sender, EventArgs e)
       {
           richTextBox1.Text = textBox1.Text.Length.ToString();
       }

非常的简单了吧。
好了下面开始吧
2.发布


我们右键单击项目找到发布二字然后单击它
3.选择 发布目录 效果发下


这里就是我们上面新建的发布目录了
4.选择升级服务器地址


选择我们上面配置好的IIS服务器地址就行了。
5.选择运行方式


这里是选择程序是否允许在脱机模式下运行程序,当然一般是 是,如果你确实有需要的话可以选择否的。
这个根据自己情况吧
6.开始发布


在发布之前会生成一个报告,如上图下一步

然后单击确定,过一会儿会发布成功,并直接打开如下界面哦

没错就是这个,连升级和下载的界面都帮助咱们生成 了。是不是很棒啊。
先别急着安装,因为现在还不行,我们还要进行配置才行,
先到发布目录下看看我们生成的是什么程序吧

就是这些程序,

这里面记录的是每次发布的版本,当然我们要定期进行适当的清理,要不然会越来越多哦。
下面我们什么也不用管只要把这些程序Copy到升级目录下面就行了
Copy完成如下

好了 我们的配置工作到这里就算完成了。
下面就是分布用户的问题了,如果你希望那个电脑安装你的程序,就可以直接复制Setup程序给他就行了

没错就是这个,而且只需要这一个就可以,或者直接把http://192.168.1.105:8055/publish.htm这个地址发给用户也是一样的
然后在用户电脑上双击安装

过一会儿就安装完成了,
之后会自动打开程序如下

看这不是我们刚才写的程序吗?是不是很激动啊。
到这里就算是大功已成了,下面我们看看他安装在什么地方吧

没错就在我们的开始程序里面
7.升级


到这里客户端的工作就完成了,以后用户只需要单击这个程序就行,有升级会自动提示
下面咱们来看看如果有更新了会怎么样。
我们将刚才的例子做一个更新,添加一个帮助按钮
效果如下

代码如下所示

[C#] 纯文本查看 复制代码
01
02
03
04
private
void  button2_Click(object
sender, EventArgs e)
      {
          richTextBox1.Text = "只要你输入字符并单击计算就会自动 计算出长度哦  还不试试";
      }

哎,这不能再简单了吧,呵呵,大家知道什么意思就行了,只是为了看看效果。
修改完成之后我们再将这个程序安上面的步骤一步一步的操作一下,最后把发布目录的程序copy到升级目录就行了。
然后在客户端单击刚才安装的程序

会自动出现如上图的提示,那么我们只要单击确定就行。

开始升级了

怎么样,是不是很简单啊,到这里我们已完成了发布与升级的效果
8.配置


大家一定会想了,这太简单了,如果要修改安装的目录 ,图标,之类的应该怎么操作呢?
这个其实也很简单大家右键项目选择属性

找到发布

这所有的配置都在这里,
在这里,版本号,你每发布一次会自动增长一个,也就是因为它客户端的程序才会自动升级的哦。
而且你还可以把NEt运行环境直接打包进去,如果客户端第一次安装没有.net环境的话,可以直接从升级的网站下载的哦。是不 是很方便
到里就算完了,如果大家还有什么不明白,或者什么好的建议的话可以跟贴哦。
最后感谢大家的支持

winFrom程序更新自动安装的更多相关文章

  1. 使用Inno Setup 打包.NET程序,并自动安装.Net Framework

    使用Inno Setup 打包.NET程序,并自动安装.Net Framework http://www.cnblogs.com/xiaogangqq123/archive/2012/03/19/24 ...

  2. 在打包程序中自动安装SQL Server数据库 .

    原文:在打包程序中自动安装SQL Server数据库 . 1.创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”. 在“添加新项目”对话框中,选择“项目类型” ...

  3. android 版本更新适配8.0,解决8.0手机无法更新自动安装apk

    随着android 7.0的普及android 8.0的也逐渐流行起来,那么google对权限方面又有了新的修改.而且我发现在android8.0中除了一些bug,比如说:在小米6(Android 8 ...

  4. Winfrom 程序打包及安装

    前言 近期被公司外派到驻空调厂的项目组,支援一个TCP相关的程序对接.主要是做智能门禁系统,然后主要是统计出实时的进出人数. 我这边能作为服务端,门禁设备作为客户端,整个流程并不算复杂,根据协议来写, ...

  5. windows系统下,在C#程序中自动安装字体

    在Windows系统中,原有自带的字体样式有限,有时候我们的程序会使用到个别稀有或系统不自带的字体.因此我们需要将字体打包到程序中,当程序启动时,检测系统是否有该字体,如果没有则安装该字体,也可以动态 ...

  6. Android应用程序的自动更新升级(自身升级、通过tomcat)(转)

    Android应用程序的自动更新升级(自身升级.通过tomcat) http://blog.csdn.net/mu0206mu/article/details/7204746 刚入手android一个 ...

  7. VS C#程序打包覆盖安装不能更新的解决方法

    最近写个小程序,打包覆盖安装更新时老是不起作用,还是原来的程序. 在网上四处查找,productcode和ersion都已经更改,removepreviousversions也设置成true了,可就是 ...

  8. 【实用篇】Android之应用程序实现自动更新功能

    我个人用的是友盟提供的自动更新组件,因此在这里只描述如何实用友盟提供的组件来完成程序的自动更新,步骤如下: 1.登录友盟官网,点击注册一个友盟账号. 2.注册成功后将会自动进入到添加新应用界面,选择添 ...

  9. Android 自己实现更新下载自动安装

    1.一些公司开发完一款App之后可能并不会去上架App商店,但事后期也需要定时进行维护更新,所以会选择把打包好的apk 发布到自己的服务器,然后在数据库建一个版本号的表,然后剩下的就交给你androi ...

随机推荐

  1. webpack 配置简单说几句 ?

    前言 这几天在准备一个单页面应用, 准备试试webpack神器,在准备webpack下的知识点,顺便记录下一些使用的心得. webpack 的配置说明 在近来的前端开发中,业务逻辑复杂化,层次多样化, ...

  2. asp.net 打印控件使用方法

    打印的效果及控制性虽然不是很好,但是也能勉强使用,应付一般的打印还是 可以的了.代码如下所示: 代码 复制代码 代码如下: //调用PrintControl.ExecWB(?,?)实现直接打印和打印预 ...

  3. HIVE-分区表详解以及实例

    HIVE中的分区表是什么,我们先看操作,然后再来体会. 创建一个分区表,分区的单位时dt和国家名 hive> create table logs(ts bigint,line string) & ...

  4. unix下网络编程之I/O复用(三)

    poll函数 在上文unix下网络编程之I/O复用(二)中已经介绍了select函数的相关使用,本文将介绍另一个常用的I/O复用函数poll.poll提供的功能与select类似,不过在处理流设备时, ...

  5. GWT更改元素样式属性

    GWT有时候不像普通网页那样可以自由的添加CSS改变样式,所幸gwt提供了一些底层的方法,通过这些方法来实现DOM操作等.通过gwt部件的getElement()可以取得dom上的元素,这时就能对该元 ...

  6. 【转】CSG(Closed Subscriber Group)闭合用户组

    CSG是3GPP R8中引入的概念,定义为闭合用户组.有以下特点: 1. 每个CSG由一个CSG ID标识 2. 同一用户可属于多个CSG,用户与CSG的关系就好比签约,启用了CSG小区只会允许签约用 ...

  7. 升级 AngularJS 至 Angular

    Victor Savkin 大神撰写了一系列文章详细介绍如何升级 AngularJS 应用: NgUpgrade in Depth Upgrade Shell Two Approaches to Up ...

  8. paramiko连接方式

    链接方法: 方式一: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh. ...

  9. 安卓读取SD卡的容量

    在开发中,我们经常会用到SD卡,那么在对SD卡进行读写的时候,我们经常需要判断SD卡的剩余容量是否足够.因此,这次我们来写写获取SD卡容量的程序. 该注意的地方,我都在程序里面有注明了.看程序基本就懂 ...

  10. java定时器控制时间打印

    public class test2 { public static void main(String []args){ Timer timer=new Timer(); timer.schedule ...