WPF ClickOnce应用程序IIS部署发布攻略

WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0。优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权限运行,避免了权限带来的问题。而我觉得最大的益处还是可以自动更新!这样就具备了CS程序功能强大速度快的优点,又有BS程序部署升级容易的优点。

本文要讨论的就是,WPF ClickOnce应用程序的发布,IIS设置,客户端使用的一系列过程。

一、先建立一个IIS网站承载WPF应用程序。

1、新建一个目录,命名IISWpf。

2、打开IIS管理器,添加网站。

确定,网站就建好了。打开物理路径F:\IISWpf,新建一个目录WPFApp_01,以后每增加一个应用程序就建一个目录。

二、现在开始Visual Studio的工作

新建项目,选择WPF应用程序。注意:不是WPF浏览器应用程序。

重点是项目属性的设置。

安全性,启用ClickOnce安全设置

编译好,下一步就可以发布了。

选择iis_wpf_host下的WPFApp_01。点"打开",系统会有一个对话框询问这是一个应用程序,是否打开?当然选是。

立即发布!

这时在物理路径下多了一些东西,这就是发布的内容。

到现在运行这个程序的地址已经有了:http://本机IP:7000/WPFApp_01/

例如:http://localhost:7000/

三、回到IIS管理器设置默认文档

在设置默认文档前,右键WPFApp_01,转换成应用/convert to application. 文件夹图标会转换成地球图标。

增加默认文档:XXERP.application。

4. 发布ClickOnce包

在发布前,我们再说两个东西,那就是代码访问安全和程序签名。

  • 代码访问安全:ClickOnce 应用程序受 .NET Framework 中代码访问安全性约束的限制,以帮助限制代码访问受保护的资源和操作的权限。 因此,了解代码访问安全性的含义以相应地编写 ClickOnce 应用程序是十分重要的。 您的应用程序可以使用完全信任或使用部分区域(如 Internet 区域和 Intranet 区域)来限制访问权限。
  • 程序签名:ClickOnce 使用证书验证应用程序发行者的真实性,并使用证书为应用程序和部署清单签名,以证明文件未被篡改。 签名是一个可选的步骤,它会使在生成清单以后更改应用程序文件更容易。 然而,在没有签名清单的情况下,很难确保应用程序安装程序在受到中间人安全攻击时不被篡改。 出于这个原因,我们建议您对应用程序清单和部署清单进行签名,以帮助保护您的应用程序。

这部分的解释和详细介绍可以看MSDN里面的保护应用程序章节。

然后点击发布按钮即可,发布成功后IE会自动打开发布好的页面,你只需要将发布的地址给需要安装此程序的客户就可以轻松完成程序的部署了。

5. 问题补遗

    • 关于签名过期的问题可以参考园友许海彪的这篇文章:解决ClickOnce签名过期问题。
    • 关于ClickOnce信任文件大小的问题,修改注册表HKEY_CURRENT_USER/Software/Classes/Software/Microsoft/Windows/CurrentVersion/Deployment
      做成一项“OnlineAppQuotaInKB”的DWROD值即可。

看看完成的结果,打开IE,输入网址http://本机IP:7000/WPFApp_01/

我的备注:IE,EDGE都能打开。本地测试Chorme无法下载打开。

以上转载自:REF1:http://www.cnblogs.com/edong/archive/2013/06/06/3121623.html

ref2:http://gcsjl8.com/forum.php?mod=viewthread&tid=102

其他:没有安装IIS 服务的,百度如何安装IIS服务。

本机测试碰到一些报错,无法显示网页,因为没有权限读取目录:可以在Directory Browsing中点击Enable,打开后,会显示如下图。

原文地址:https://www.cnblogs.com/watermarks/p/8463453.html

时间: 2024-10-12 11:25:10

WPF ClickOnce应用程序IIS部署发布攻略的相关文章

转载 程序员技术练级攻略

转载 程序员技术练级攻略 博客分类: 转载 本文转载自陈皓(http://coolshell.cn/articles/author/haoel) 博客: http://coolshell.cn/articles/4990.html 月光博客6月12日发表了<写给新手程序员的一封信>,翻译自<An open letter to those who want to start programming>,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的

程序员跳槽全攻略

程序员跳槽全攻略 程序员是一个跳槽率非常高的工作,如何才能正确把握自己未来的路呢?乐橙谷为大家总结了一些程序员跳槽的攻略: 从一名普通的"码农"晋升为上市公司的CTO或者CEO,整个晋升之路就像是一个漏斗,很少有人能沉淀下来.但是, 这仍然是程序员寻求一条专业化最理想的道路. 自由职业者当国内对于自由职业者的定义还停留在无业游民或艺术工作者的时候,很多国家的 程序员已经实现在家挣钱的梦想.很多国家成熟的IT环境让程序员成为IT自由职业者似乎并没有那么难,方式主要可以分为线上和线下两种.

IIS 7完全攻略之日志记录配置(摘自网络)

IIS 7完全攻略之日志记录配置 作者:泉之源 [IT168 专稿]除了 Windows 提供的日志记录功能外,IIS 7.0 还可以提供其他日志记录功能.例如,可以选择日志文件格式并指定要记录的请求. (一)启用或禁用日志记录 如果希望 IIS 基于配置的条件有选择地记录特定的服务器请求,就应为服务器启用日志记录.一旦启用了服务器日志记录,就可以为服务器上的任意站点启用选择性日志记录.然后,还可以查看日志文件,以了解失败和成功的请求. 如果不再希望 IIS 有选择地记录对某个站点的请求,则应为

程序员技术练级攻略

以下全文来自http://coolshell.cn/articles/4990.html 前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样. 一定要动手,例子不管多么简

程序猿技术练级攻略

伯乐人才网6月9日发表了<写给即将入行的程序猿的一封信>,翻译自<An open letter to those who want to start programming>.我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章. 由于他也是喜欢编程和技术的家伙.于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下.于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并依据我的经历添加了"进阶"一

程序员技术练级攻略(经典)

前言 你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋友的抱怨:学校课程总是从理论出发,作业项目都看不出有什么实际作用,不如从工作中的需求出发) 建议: 不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用. 回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样. 一定要动手,例子不管多么简单,建议至少自己手敲一遍看看是否理解了里头的细枝末节. 一定要学会思考,思考为什么要这样,

微信小程序详细图文教程-10分钟完成微信小程序开发部署发布(3元获取腾讯云服务器带小程序支持系统)

很多朋友都认为微信小程序申请.部署.发布很难,需要很长时间. 实际上,微信和腾讯云同是腾讯产品,已经提供了10分钟(根据准备资源情况,已完成小程序申请认证)完成小程序开发.部署.发布的方式.当然,实现的是基础功能.但是,可以给学习者很便捷的体验和很好的启发. 不过,随着微信平台和云服务的发展,真担心,程序猿会失业! 目录 一.微信小程序申请 二.服务器设置(申请.部署.域名) 1.申请服务器 2.部署服务器 3.域名申请和配置 三.小程序发布 1.下载DEMO 2.下载开发工具并安装 3.配置参

XX-NET部署全套攻略

一.你需要找一台能翻墙的电脑,注册一个谷歌Gmail邮箱,填写注册信息,绑定手机号码balabala不赘述了,地址:gmail.google.com/ 二.创建Google App Engine账户,使用刚刚创建的Gmail账户登录就行,地址:https://console.developers.google.com

寒城攻略:Listo 教你 25 天学会 Swift 语言 - 03 The Basic

import Foundation //*********************************************************************************************** //1.The Basics(基础) //_______________________________________________________________________________________________ //介绍 //Swift 的类型是