http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 395891|回复: 159

[Winform] C#Winform程序如何发布并自动升级(图解)

  [复制链接]
发表于 2013-3-22 13:48:04 | 显示全部楼层 |阅读模式
            C#Winform程序如何发布并自动升级(图解)
    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布
关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)
其实打包是打包,发布是发布两者是没有任何关系的,只是有些同志会分不清楚。混在一起了。
下在面大家就和我一起来做一个发布并升级的程序吧。
首先我们准备几个工作
1.新建一个存储发布后程序的目录比如D:\iis\textWinform  以下简称-- 发布目录
2.在IIS新建一个网站并指向目录D:\iis\autoWinfrom,当然这个你随意,我这里只是有一个测试 以下简称  升级目录
   因为我是一台电脑,如果大家真实使用时,这个就是你服务器上的配置了
3.当然还要有一个升级的URL  http://192.168.1.105:8055 这个就是刚才我新建网站的地址 关于怎么配置IIS下网站的操作,大家可以参考我的文章 IIS6.0手动安装与配置asp.net2.0|3.5|4.0全过程

好了下面开始吧
1.新建一个项目,可以简单点,因为我们只是为了测试发布功能

我就以一个计算字符长度的程序为例子吧
界面如下
打包与发布1.jpg
代码如下
[C#] 纯文本查看 复制代码
 private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = textBox1.Text.Length.ToString();
        }

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

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

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

打包与发布4.jpg
选择我们上面配置好的IIS服务器地址就行了。
5.选择运行方式

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

在发布之前会生成一个报告,如上图下一步
打包与发布6.jpg
然后单击确定,过一会儿会发布成功,并直接打开如下界面哦
打包与发布7.jpg
没错就是这个,连升级和下载的界面都帮助咱们生成 了。是不是很棒啊。
先别急着安装,因为现在还不行,我们还要进行配置才行,
先到发布目录下看看我们生成的是什么程序吧
打包与发布8.jpg

就是这些程序,
打包与发布9.jpg
这里面记录的是每次发布的版本,当然我们要定期进行适当的清理,要不然会越来越多哦。
下面我们什么也不用管只要把这些程序Copy到升级目录下面就行了
Copy完成如下
打包与发布10.jpg
好了 我们的配置工作到这里就算完成了。
下面就是分布用户的问题了,如果你希望那个电脑安装你的程序,就可以直接复制Setup程序给他就行了
打包与发布11.jpg
没错就是这个,而且只需要这一个就可以,或者直接把http://192.168.1.105:8055/publish.htm这个地址发给用户也是一样的
然后在用户电脑上双击安装
打包与发布12.jpg
过一会儿就安装完成了,
之后会自动打开程序如下
打包与发布13.jpg
看这不是我们刚才写的程序吗?是不是很激动啊。
到这里就算是大功已成了,下面我们看看他安装在什么地方吧
打包与发布14.jpg
没错就在我们的开始程序里面
7.升级

到这里客户端的工作就完成了,以后用户只需要单击这个程序就行,有升级会自动提示
下面咱们来看看如果有更新了会怎么样。
我们将刚才的例子做一个更新,添加一个帮助按钮
效果如下
打包与发布17.jpg
代码如下所示
[C#] 纯文本查看 复制代码
  private void button2_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "只要你输入字符并单击计算就会自动 计算出长度哦  还不试试";
        }

哎,这不能再简单了吧,呵呵,大家知道什么意思就行了,只是为了看看效果。
修改完成之后我们再将这个程序安上面的步骤一步一步的操作一下,最后把发布目录的程序copy到升级目录就行了。
然后在客户端单击刚才安装的程序
打包与发布15.jpg
会自动出现如上图的提示,那么我们只要单击确定就行。
打包与发布16.jpg
开始升级了
打包与发布18.jpg
怎么样,是不是很简单啊,到这里我们已完成了发布与升级的效果
8.配置

大家一定会想了,这太简单了,如果要修改安装的目录 ,图标,之类的应该怎么操作呢?
这个其实也很简单大家右键项目选择属性
打包与发布19.jpg
找到发布
打包与发布20.jpg
这所有的配置都在这里,
在这里,版本号,你每发布一次会自动增长一个,也就是因为它客户端的程序才会自动升级的哦。
而且你还可以把NEt运行环境直接打包进去,如果客户端第一次安装没有.net环境的话,可以直接从升级的网站下载的哦。是不 是很方便
到里就算完了,如果大家还有什么不明白,或者什么好的建议的话可以跟贴哦。
最后感谢大家的支持

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-3-22 15:44:44 | 显示全部楼层
给力,赞一个~
发表于 2013-3-25 10:01:32 | 显示全部楼层
先标记一下,赞一个,谢谢飞哥无私奉献
发表于 2013-3-27 16:34:09 | 显示全部楼层
我的程序要求必须管理员权限的,所以app.manifest文件中
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
而OnceClick不支持,这该怎么办?
发表于 2013-3-27 16:37:13 | 显示全部楼层
而且明明本机已安装了Framework 4.0的,为何还要我再安装呢?截图如下:

 楼主| 发表于 2013-3-27 16:56:58 | 显示全部楼层
守望幸福 发表于 2013-3-27 16:37
而且明明本机已安装了Framework 4.0的,为何还要我再安装呢?截图如下:

那是因为你发布进去了,如果你发布时不选择就不会了
发表于 2013-3-27 16:59:58 | 显示全部楼层
站长苏飞 发表于 2013-3-27 16:56
那是因为你发布进去了,如果你发布时不选择就不会了

飞哥的意思是,属性里头那个Microsoft .NET Framework 4(x86 and x64)选项的钩钩去掉?
那这样的话不是会造成没有安装framework4的人不能使用这个软件?
 楼主| 发表于 2013-3-27 17:04:58 | 显示全部楼层
守望幸福 发表于 2013-3-27 16:59
飞哥的意思是,属性里头那个Microsoft .NET Framework 4(x86 and x64)选项的钩钩去掉?
那这样的话不是会 ...

是的确实是这样,只要是打进去了,就回直接再安装,他好像不会自动检查吧,最少我不知道有,也没有研究出来,不过第二次升级时就不需要了,只是第一次需要下载安装。这个你自己权衡一下吧。
发表于 2013-3-27 17:07:20 | 显示全部楼层
站长苏飞 发表于 2013-3-27 17:04
是的确实是这样,只要是打进去了,就回直接再安装,他好像不会自动检查吧,最少我不知道有,也没有研究出 ...

也是,不过我不明白他给我搞的居然是繁体版本的安装文件。
那么上面那个问题呢?就是OnceClick不只是requireAdministrator的呢?
或者有没有其他办法软自己的软件在打开时告诉用户需要用管理员权限?
 楼主| 发表于 2013-3-27 17:19:57 | 显示全部楼层
守望幸福 发表于 2013-3-27 17:07
也是,不过我不明白他给我搞的居然是繁体版本的安装文件。
那么上面那个问题呢?就是OnceClick不只是req ...

NO这个没吧,毕竟是封装的,能修改的不太多,这软件 安装是不需要管理员权限吧,我记是我们之前的是不需要的,但是不知道在那里能修改
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-23 00:47

© 2014-2021

快速回复 返回顶部 返回列表