登录
注册
程序人生
个人空间
个人相册
帮助
界面
简洁版本
拼吾爱程序人生
.Net编程
Visual Studio.NET
使用ClickOnce细分发布版本
Web
www.pin5i.com
输入您的搜索字词
提交搜索表单
.Net编程
Asp.Net
C#
ADO.Net
Visual Studio.NET
Silverlight
F#
WCF
WPF
Linq
WF
其他编程
Java
Ajax
javascript
正则表达式
XML
Web Service
C & C++
Ruby & Python
Flex
PHP
数据库编程
SQL
SQL Server
Oracle
DB2
MySQL
Other DB
编程应用
软件测试
应用系统
SEO
Google Adsense
建站软件
程序人生
程序人生
社区管理
网站事务
公益活动
1
/ 1 页
1
跳转
页
查看:
202
使用ClickOnce细分发布版本
cobra
striver
个人空间
相册
性别:
来自:
拼吾爱
积分:
7097
帖子:
7009
注册:
2007-04-09
2008-09-28 22:31
|
只看楼主
树型
|
收藏
|
小
中
大
复制帖子链接到剪贴板
1F
使用ClickOnce细分发布版本
ClickOnce是微软在.NET 2.0框架中发布的一项技术,允许大家在Visual Studio中方便地部署和更新.NET的Windows应用程序。部署功能是通过把应用程序文件复制到一个文件夹中、FTP目录中或者某个Web位置上,并同时附加一个清单文件来实现的。清单文件是一个具有.application扩展名的XML文件,它包含了所有程序文件的一个列表,以及类似发布者标识这样的安全相关信息。ClickOnce应用程序每发布一个新的版本,一个新的子目录就被创建,并把更新的文件放在这个目录中。程序的所有部署版本都是相互独立存在的,这意味着我们只需要识别用户,并把用户导向应用程序适合的版本,从而控制它们需要接受那个版本的程序。
首先,让我们来创建一个简单的Windows应用程序,并通过ClickOnce来部署它。创建一个新的Windows应用程序项目,放置一个标签控件到窗体上,并在New()过程中编写一些代码,以便让我们能看到我们拥有的是哪个版本。
Code
[copy to clipboard]
CODE:
label1.Text = "Version: " & _
System.Reflection.Assembly.GetExecutingAssembly.GetName.Version.ToString
现在,打开项目属性界面并浏览签名(Signing)标签页,勾选“Sign the ClickOnce manifest”复选框,并通过点击“Create Test Certificate”按钮及输入密码来创建一个测试证书。
附件:
您所在的用户组无法下载或查看附件
现在,我们已经拥有证书了,因而可以设置ClickOnce部署了。选择发布(Publish)标签页,输入发布位置即安装URL(你也可以使用底部的发布向导(Publish Wizard)来直接输入这些)。发布位置是将要存放部署文件的物理位置。安装URL是用户用于下载和安装应用程序的URL。我们打算让这个应用程序能够脱机运行,所以选择在“Install Mode and Settings”之下的第二个单选框。为了实现我们控制版本的功能,我们需要把程序文件部署到一个Web应用程序的文件夹树中,在选择部署位置时务必注意这一点。
附件:
您所在的用户组无法下载或查看附件
注意,更新选项要通过点击“Updates...”按钮来显示。
附件:
您所在的用户组无法下载或查看附件
至此,我们已经具有了一个可以进行部署的ClickOnce应用程序了。一旦部署并安装好,利用显示出来的更新选项设置,应用程序将会在每次启动的时候检查更新。
附件:
您所在的用户组无法下载或查看附件
如果有新版本存在,那么用户将被提示进行更新。
附件:
您所在的用户组无法下载或查看附件
此时,我们已经部署好一个ClickOnce应用程序了,接下来可以准备实现版本控制。进行版本细化控制的原理是为主文件.application设置一个基于Web的转向功能.首先,我们要把.application扩展名添加到ISS的允许文件列表中。这可以通过IIS里的Web站点属性,设置界面中的Home Directory标签页上的Application Configuration配置节来实现。
一旦完成这步工作,就可以创建一个新的WebApplication并添加一个Handler类到其中。
附件:
您所在的用户组无法下载或查看附件
接着,在应用程序的web.config文件中注册这个Handler。Handler类型的格式是[Namespace].[ClassName], [Assembly]
Code
[copy to clipboard]
CODE:
<httpHandlers>
<add verb="GET" path="*.application" type="WebApplication1.MyHandler,WebApplication1"/>
<!--httpHandlers>
<!--system.web>
<!--configuration>
现在,返回到我们的示例ClickOnce应用程序,重新打开Publish标签页下的Updates对话框。输入指向这个Web应用程序的更新位置。
附件:
您所在的用户组无法下载或查看附件
最后,编辑我们之前创建的HttpHandler,让其针对请求返回适合的版本。这里,我们返回一个硬编码的版本,不过一个真实的实现应该处理验证等功能,以提供更好的灵活性。
附件:
您所在的用户组无法下载或查看附件
标头可以在IIS中进行配置或如这里所示的在代码中设置。
一些注意事项
在为ClickOnce签名使用临时证书时,一旦证书过期,就需要使用一个新的来代替,那么,应用程序的当前安装就不能再升级了,所有用户都必须重新安装应用程序。这是一个已知的缺陷。幸运的是,已经有一种方式能够无限地延长证书的过期时间。访问这个地址来获取详细信息:
http://support.microsoft.com/Default.aspx?kbid=925521
。
使用更新位置来同步部署应用程序清单的位置非常重要。IIS不能处理未在列表中的文件,所以如果更新路径无效的话你的处理器将永远不会触发。
如果使用Visual Studio 2008,部署文件夹略有不同。每个版本的.application文件都放在他们特定的子目录中,而非在主文件夹中。如果你有一个在VS 2005下设计的版本方案,并在VS 2008中来部署应用程序的话,这就会引起问题。
(作者/David Cooksey 译/朱永光 出处/Infoq)
感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
您可能对 [Visual Studio.NET] 的这些文章也感兴趣:
深入学习Heritrix---解析Frontier(链接工厂)
聚焦.NET开源世界里的奇葩:Beagle
Microsoft Live Mesh Keeping your World in Sync
.NET Framework3.5新特性:Lambda表达式
.NET 3.5 SP1允许从网络共享环境中运行托管应用程序
Sandcastle源代码已发布
.NET组件和COM组件之间的相互操作
亚马逊EC2云计算计划支持Windows
微软同步框架(MSF)入门之六--文件(夹)同步
VS2005常用插件搜罗
发送短消息
查看公共资料
查找该会员全部帖子
UID:
1
精华:
10
威望:
38
金钱:
1491.55 拼元
状态:
离线
28688028
<<
上一主题
|
下一主题
>>
1
/ 1 页
1
跳转
页
快速回复帖子
标题
禁用 URL 识别
禁用表情
禁用 Discuz!NT 代码
使用个人签名
default
正在加载表情...
[完成后可按 Ctrl+Enter 无刷新发布]
论坛跳转...
.Net编程
Asp.Net
C#
ADO.Net
Visual Studio.NET
Silverlight
F#
WCF
WPF
Linq
WF
其他编程
Java
Eclipse
Spring
EJB
Ajax
ExtJS
Dojo
javascript
jQuery
正则表达式
XML
Web Service
C & C++
Ruby & Python
Flex
PHP
数据库编程
SQL
SQL Server
Oracle
DB2
MySQL
Other DB
编程应用
软件测试
应用系统
SEO
Google Adsense
建站软件
程序人生
程序人生
社区管理
网站事务
公益活动
管理团队
回收站
下载权限不够?五招教你快速提升权限。。。
我的主题
我的帖子
我的精华
我的空间
我的相册
帖子标题
空间日志
相册标题
作 者
我的主题
我的帖子
我的附件
我的精华
我的空间
我的相册