ClickOnce部署WinForm程序技巧总结_winform使用clickonce_记得微笑的博客-程序员秘密

技术标签: .NET Winform  .NET C#  

原文地址:http://swanmsg.blog.sohu.com/162994305.html

之前做过ClickOnce部署应用程序的项目,今天做一次全面的总结。那么这些都是微软提供方便分布式部署的相关解决方法,这种方法既有弊端,也有优点。

最大的缺点:

远程部署,不能更换安装目录;并且每次安装或更新都是C盘"C:\Documents and Settings\Administrator\Local Settings\Apps\2.0" 的路径。

较好的优点:

远程部署很方便,可维护性强,简单可靠。

下面讲讲如何ClickOnce部署您的应用程序:

一、发布前,设置属性选项

右键点击您的Windows Application,选择“属性”,点击“发布”选项页。填写要发布的本地路径和安装文件夹的路径(一般是URL),如下图所示:

点击“应用程序文件(I)...”按钮,选择下载时,是否必须下载项,弹出如下窗体所示:

下载时,是否包括该文件哈希值,弹出如下窗体所示:

点击“系统必备(Q)...”按钮,弹出如下窗体:

点击“更新(U)...”按钮,弹出如下窗体:

点击“选项(S)...”按钮,弹出如下窗体,选择“说明”选项,可以填写关于该软件的发布参数。

点击“部署”选项,可以填写设置安装的部署网页,如下图所示:

设置上述步骤完成后,可以点击下图“发布向导(Z)...”或“立即发布(N)”按钮,发布我们的程序,如下图:

下面我们看看“D:\tmp\Set\”路径下生成了什么,如下图所示:

打开“Application Files”文件夹看看里面有什么,如下图所示:

下图是生成目录下的文件列表:

   二、部署我们的应用程序

我们以IIS7服务器来做设置,打开IIS7,右键点击“网站”-〉“添加网站”,如下图所示:

    启动我们的网站:

   三、ClickOnce部署我们的程序

    打开IE浏览器,输入“http://127.0.0.1/rfid.htm”网址,如下所示:

    点击“安装”按钮,出现下图:

出现上述错误,经过检查是路径不对。现在我们在rfid.htm同目录下新建一个“rfid”文件夹,把rfid.htm同目录下的Application Files文件夹、xxx.apllication和setup.msi文件拷贝到rfid目录下。现在我们重试一下。

   点击“安装”按钮,进行安装,下图所示:

    安装完成后,自动启动应用程序,如下图:

   四、升级我们的应用程序

    如果我们的程序更新,当启动我们的客户端应用程序时,出现如下更新进度条:

    点击“确定”按钮,进行更新程序。程序更新完毕,自动启动我们的客户端应用程序。

   自此,我们的ClickOnce部署程序讲完了,是不是很简单啊?那大家就试试吧。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq798833488/article/details/52512952

智能推荐

tf常见的优化器(Optimizer)汇总_Bubbliiiing的博客-程序员秘密

tf.train常见的Optimizer汇总及其参数解释tf.train常见的Optimizer例子numpy.random.rand(d0, d1, ..., dn):numpy.random.randn(d0, d1, ..., dn):numpy.random.randint(low, high=None, size=None, dtype='I'):numpy.random.uniform...

CentOS 安装Helm_line_aijava的博客-程序员秘密

CentOS 安装Helm安装Helm需要kubectl顺便安装下docker安装Docker的命令yum install docker-ce安装kubectlcurl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/k...

2016年 中国大学生程序设计竞赛合肥赛区(ccpc)解题报告_hit_buxiaoyu的博客-程序员秘密

合肥赛区:(现场四题,赛后补到七题)ProblemC:题意:给一棵nn个节点的树,边有权,为0或1。在树上进行游戏,游戏开始时会确定一个节点为根,两人交替进行操作。一方操作时,选一个非根节点uu满足uu和其父亲之间的边权为1,然后把uu到根路径上所有边权翻转。一方无法操作时,另一方胜利。有mm次修改:0\x0 x询问以xx为根开始游戏谁会赢;1\x\ y\ z1 x y z将xx和yy

使用networkx绘制带节点坐标图(节点、节点坐标和边)_networkx坐标_|晴天|的博客-程序员秘密

使用networkx绘制带节点坐标的图首先导入需要的工具包 import matplotlib.pyplot as plt import networkx as nx import numpy as np 使用networkx创建一个空的无向图 G = nx.Graph() # 创建一个空的无向图将对应的节点并添加到网络中 # 节点的个数 num = 6 nodes =...

解决Vue路由懒加载Webpack热更新慢的问题(记录)_由于懒加载页面太多的话会造成webpack热更新太慢_Deku_Ln的博客-程序员秘密

这里就想记录一下关于解决路由懒加载热更新慢的问题。我们知道使用路由懒加载可以优化我们系统的加载速度,但是在使用懒加载的时候在我们开发环境下会导致Webpack热更新慢的问题,致使我们运行项目会很漫长。(当然如果是通过Vue3的Vite的话,它是不用webpack的所以这里也不列举进来)那么我们就可以进行设置,在我们开发环境下就不用懒加载,在我们生产环境下就用懒加载就可以了。我们可以在路由设置的文件夹里增加一个开发环境路由配置和生产 环境路由配置。我们设置了增加了一个import_develo

随便推点

Python关于pandas中 ValueError: Writing 0 cols but got ”XXX“ aliases的错误_guoz2019的博客-程序员秘密

Python关于pandas中 ValueError: Writing 0 cols but got ”XXX“ aliases的错误

[POJ](3268)Silver Cow Party ---最短路径(图)_正方形网格走一圈回到起点最长路_WangMeow的博客-程序员秘密

Silver Cow PartyTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 23762 Accepted: 10850DescriptionOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently

迷宫最短路径(C++)_c++迷宫步数_水云文的博客-程序员秘密

迷宫最短路问题接上次经典迷宫问题问题:这次迷宫问题不仅要求判断是否能够找到通路,并且要求找到最短能到达迷宫所需的步数,即最短路径问题暴力算法:对每个结点进行遍历,记录每种路径的步数;优化剪枝:当遍历步数大于ans之前第一次找到ans初始化值为无穷大,当第一次找到通路路径后,ans被第一次step替换。之后的每次路径只要比前一次step小,就会被step小的替代;剪枝:而在寻找通路的过程中,只要步数大于了前一次所找通路的step,这次寻找终止,返回下一次寻找;代码如下:#include <

均方差损失函数求误差及梯度_均方误差损失函数的梯度怎么求_AkagiSenpai的博客-程序员秘密

均方差损失函数求误差及梯度完整源码可戳:https://github.com/AKGWSB/Convolution-Neural-Network-Frame-only-based-on-Numpy-/blob/master/Loss.py损失函数表达式即 输出减去目标的平方再乘以二分之一MSE = 1/2 * (output - target)^2求梯度均方差损失函数的求导相对简单...

内核的likely和unlikely_likely内核_奔跑的小刺猬的博客-程序员秘密

1. 概念指令周期是指执行一条指令所需要的时间,一般由若干个机器周期组成,是从取指令、分析指令到指令执行完所需的全部。预取指令具体方法就是在不命中时,当数据从主存储器中取出送往CPU的同时,把主存储器相邻几个单元中的数据(称为一个数据块)都取出来送入Cache中。预取指令可以更好的利用 cpu资源。简单说就是从内存取指令很慢, cpu要等待这个过程。如果能提前预测可能执行的指令,就提前从内...

推荐文章

热门文章

相关标签