当前位置:编程学习 > C#/ASP.NET >>

请教C#软件自动更新升级方面的问题

我最近想做个软件自动更新升级方面的东西。但到目前还有一些不明朗的地方。望大牛给指导一下!开始时候,我在网上找了好久,发现方式有很多 比如webservice ftp 或者微软的click-once 第三方的ant 等等。偏偏没找到一个完整的源码案例,于是乎,看的晕乎乎的。在博客园发了很多邮件请教前辈吧!可能周末原因,一封未回复。好啦,说正事!我要请教的几个问题! 第一:webservice 和 ftp 有啥子区别联系,用他们来做软件更新大概有些啥子限制呢? 第二:我是租的房子,几个人共用的网络,是用路由进行分的。如果我要外网的朋友访问自己的电脑,要怎样才能做到呢? 第三:哪位好心的大牛能不能赏我个完整的软件更新的案例源码呀!  C# --------------------编程问答-------------------- 我们的刚刚接触编程一个月的程序员,学习clickonce只需要10分钟,就会自己配置和发布了。然后程序的自动更新,是clickonce自动完成的,你根本不用操心(你只需要在vs的“发布”界面上选择“启动器检查更新还是启动后检查更新”)。

我不知道你怎么会这么纠结。

至于你说的别的那些,我觉得都与发布不直接相关。我觉得你在乱凑概念,而没有一个实践的机会。


第二个问题,假设你们的路由器端设计上是可以得到外网ip的。例如你把内部的路由器拿掉,直接用一个电脑接到WAN网路上,然后这个电脑上外网某个网页(例如 www.ip138.com)看到的ip跟内部ip一致,这说明具有公网ip。

在具有公网ip的条件下,你需要进入路由器的http管理页面,设置“端口影射”。例如你的机器内部固定ip是 192.168.1.200,你需要在端口 89 上发布,那么就设置路由器的 89 端口影射到你的ip。这样外网就可以使用你们的公网ip加上端口89来访问你的电脑的89端口上发布的应用程序。 --------------------编程问答--------------------
引用 1 楼 sp1234 的回复:
我们的刚刚接触编程一个月的程序员,学习clickonce只需要10分钟,就会自己配置和发布了。然后程序的自动更新,是clickonce自动完成的,你根本不用操心(你只需要在vs的“发布”界面上选择“启动器检查更新还是启动后检查更新”)。

我不知道你怎么会这么纠结。

至于你说的别的那些,我觉得都与发布不直接相关。我觉得你在乱凑概念,而没有一个实践的机会。


第二个问题,假设你们的路由器端设计上是可以得到外网ip的。例如你把内部的路由器拿掉,直接用一个电脑接到WAN网路上,然后这个电脑上外网某个网页(例如 www.ip138.com)看到的ip跟内部ip一致,这说明具有公网ip。

在具有公网ip的条件下,你需要进入路由器的http管理页面,设置“端口影射”。例如你的机器内部固定ip是 192.168.1.200,你需要在端口 89 上发布,那么就设置路由器的 89 端口影射到你的ip。这样外网就可以使用你们的公网ip加上端口89来访问你的电脑的89端口上发布的应用程序。



首先,感谢这位大牛的指导。我解释一下:我们原来确实是用click-once做的,也确实很方便。但是现在我就是打算自己写个出来。不用click-once实现。至于乱凑概念。这个真不好意思。因为我确实不太了解webservice 和ftp 所以才会一起问的。也是想找一个就是没用插件的纯代码完成的自动更新来看看。 再次感谢这位大牛! --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 如果你是想自己设计自动更新程序,那么我就可以理解了。我以为你只是想挑拣一堆网上下载的概念,而不是想自己动手。

设计这样的程序,首先不是纠结在服务器端。如果你不能在10分钟内确定你已经完全“精通”了某一种文件下载方式,那么你就应该转另外一种。你总不会一种下载远程文件的客户端代码都不会写吧?正常情况下不应该纠结在什么web service、ftp之类的概念上犹豫不决。

这样一个自动更新程序,其内部的逻辑流程设计才是关键。可是我没有看到你有想到这方面。这就好像一个发誓“我自己一定要当上总统”的人它花了所有时间上网去找文章看“如何为皇帝选礼服”,他找了一圈东西觉得这些文章都不能满足他“如何当上总统”的目的。你说这种文章可能告诉他吗?他一直在逃避自己应该设计的那些东西。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,