Bear.sTaR{R}

花开有时,错过了一日便错过了一季,就象人生错过了相遇,就不再找寻到美丽的相聚

2005中ClickOnce实现程序的自动升级功能。

        以前为了软件实现自动升级更新功能,大家可能要写很多代码,而在2005中利用ClickOnce只需设几个属性点几下按钮就行了,还是来看看怎么实现吧............

        首先建1个空的解决方案,再添加个ClassLibrary和1个WindowsApplication。
分别写入测试的简单代码,比如:
ClassLibrary:

    public class Class1
    {
        
public string GetVersion()
        {
            
return "1.0.0.0";
        }
    }

WindowsApplication(引用了ClassLibrary):
private void button1_Click(object sender, EventArgs e)
 {
     
this.label1.Text = new Class1().GetVersion();
}

然后右键WindowsApplication项目点Properties:

这里可以直接点击Publish Now按钮发布你的程序了(使用默认值)。

发布后会弹出个安装页面,点击install进行安装。安装后在开始菜单中就可以看到你的程序了。


以上就是一个完整的程序发布安装了,接下来就是升级程序了。
现在开始升级程序,这里只把 GetVersion()改下:
        public string GetVersion()
        {
            
return "1.0.0.1";
        }

然后再publish一次,这次照样会弹出上面的安装页面,但我们这次不点击install在线安装了,我们运行开始菜单中的程序,运行后发现程序会自动去检查程序版本,并提示有新版本的程序,是否升级。
是不是很简单类。
--------------------
最后是对publish的一些选项做下解释说明:
 Publishing Location是输入程序要发布的地址,可以是HTTP,FTP等等。
 Prerequisites是选择程序安装必需的先决条件。比如:freamework2.0,SQL2005,install3.1.....
 Updates是对程序检查更新的设置。是程序启动就检查更新,还是程序运行后检查,还是每个星期检查  
               一次.....
 Options就是一般是设置,大家应该都能看的懂。

posted on 2006-06-05 20:17 Bear.sTaR{R} 阅读(3314) 评论(22)  编辑 收藏 网摘 所属分类: FrameWork.FrameWork 2.0

Feedback

#1楼 2006-06-05 22:43 xmthor[未注册用户]

这个功能也就玩玩可以,可控性太差了,而且容易出问题。另外,这样的文章似乎不适合出现在首页。   回复  引用    

#2楼 2006-06-05 22:46 Lostinet      

拿一个现成的程序测试了一下。发现原来真的就这么简单。   回复  引用  查看    

#3楼 2006-06-05 23:46 海阔天空      

限制太多了,作为Browser的替代品到是可以考虑。   回复  引用  查看    

#4楼 2006-06-06 08:43 ff[未注册用户]

在局域网中怎么升级呢,地址怎么写呢?   回复  引用    

#5楼[楼主] 2006-06-06 09:08 Bear.sTaR{R}      

@ff
局域网中只要把Publishing Location设置为http://192.168.1.12/WinUpdate">http://192.168.1.12/WinUpdate

就行了
  回复  引用  查看    

#6楼 2006-06-06 09:54 sskset_unknown[未注册用户]

可控性的确太差了

请问,用这个部署程序怎么加个卸载?
  回复  引用    

#7楼[楼主] 2006-06-06 10:03 Bear.sTaR{R}      

@sskset_unknown
自动在添加删除里面添加了卸载和回滚的功能
  回复  引用  查看    

#8楼 2006-06-06 10:55 学海无涯,回头是岸      

能不能把服务器的地址放在某个配置文件中。
比如服务器的IP地址改变了,是不是还有重新编译一遍程序才能找到升级程序?
  回复  引用  查看    

#9楼[楼主] 2006-06-06 11:17 Bear.sTaR{R}      

@学海无涯,回头是岸
好像只能重新发布下程序,这个功能是不太灵活,自己不怎么能控制。

希望MS能出更灵活的ClickOnce
  回复  引用  查看    

#10楼 2006-06-06 12:49 sskset_unknown[未注册用户]

不好意思,没说清楚
添加删除里面 是有

我想问怎么在利用ClickOnce发布的程序的开始菜单栏里头添加卸载
  回复  引用    

#11楼[楼主] 2006-06-06 13:19 Bear.sTaR{R}      

@sskset_unknown
好像不行
  回复  引用  查看    

#12楼 2006-06-06 14:48 肥仔鱼      

值得尝试   回复  引用  查看    

#13楼 2006-06-06 14:51 肥仔鱼      

我这有delphi7写的自动和手动升级的冬冬,也很好使   回复  引用  查看    

#14楼[楼主] 2006-06-06 16:51 Bear.sTaR{R}      

@肥仔鱼
你用delphi7写的能在NET下用吗,能的话能不能发上来看看啊!!!
  回复  引用  查看    

#15楼 2006-06-06 20:49 C# hack      

好东西!   回复  引用  查看    

#16楼 2006-06-07 10:27 家中慢步      

太不靈活,功能出了半年了,好像還沒有人用到.   回复  引用  查看    

#17楼[楼主] 2006-06-07 10:37 Bear.sTaR{R}      

是不太灵活,但是在有时候还是比较有用的!!!   回复  引用  查看    

#18楼 2006-07-06 13:51 blackjack212_401[未注册用户]

2003里面 是不是要麻烦很多啊   回复  引用    

#19楼[楼主] 2006-07-07 09:48 Bear.sTaR{R}      

@blackjack212_401
2003是没有这个功能的,只能自己写代码来实现!!!
  回复  引用  查看    

#20楼 2006-07-08 09:10 LiSonTu[未注册用户]

怎样开发自己的publish.htm安装界面啊?   回复  引用    

#21楼[楼主] 2006-07-08 13:44 Bear.sTaR{R}      

@LiSonTu
没明白楼上的意思,是想自己写代码实现自动升级,

还是想只想自己写个升级的publish.htm页面
  回复  引用  查看    

#22楼 2007-05-31 12:16 qingfeng[未注册用户]

我在vs2005项目属性里面怎么没有找到关于publish呢,   回复  引用    





发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 418018




相关文章:

相关链接:

My Links

Blog Stats

News

与我联系

搜索

 

常用链接

留言簿

我参与的团队

随笔分类(21)

随笔档案(22)

文章分类(2)

文章档案(4)

MSDN

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜