C#程序启动时,连接到指定的服务器判断是否更新 C#制作的WinForm程序启动时,判断是否能够连接到指定的服务器,判断系统及使用的组件等是否需要更新,怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 系统所使用的文件和版本已经配置在XML中 那你就把文件的MD5 值也加到XML中去,运行程序时读取服务器上的XML,然后解析,判断本地的文件是否和服务器上的的文件的MD5值相等,如果不相等就下载 "clickonce"~~~自己看下msdn中相关内容,检查和更新都会由.net帮你干掉 try{}catch{} clickOne 、Bits 都可办到 bits 可以做,像自动更新一样,一旦系统带宽允许就去检查下载更新。自己做,提供如下思路:1.服务端需有一个收集程序组件文件信息的服务(简称:AppService),每次发生更新时,检查组件的更新情况并缓存。2.编写一个专门负责客户端更新的组件。该组件为程序的入口。每次启动程序,会先检查AppService是否正常。如正常,将客户端组件版本信息发送给AppService,由AppService对比缓存的组件最新版本信息,确定该请求客户端的更新包。AppSerivce提供更新包的生成。完成更新后,负责更新模块在按照配置信息加载真正的客户端程序入口组件。ps:对于负责客户端更新组件的自身更新需特殊处理。 SmartClient是不是要搞WebService,没有搞过不是太懂。clickOne 、Bits在msdn里没有看到相应的内容,是在哪里可以找到? 使用appupdater自动更新(一)除了在软件架构设计中需要规划好各功能项以备分别可以实现局部升级外,重要的是配置好自动升级组件。然而该自动升级组件并非直接引用即可,它需要遵守一定的规则部署才能完成自动升级。以下给出它的配置手册。 必备的文件清单: 文件名 功能描述 AppStart.exe 类似中介代理的程序,由它来启动真正的应用程序。不直接启动主应用程序是为了防止主应用程序升级的过程中被锁死而造成升级失败。 AppStart.config AppStart.exe的配置文件,它指定要启动的应用程序所在目录,以及要启动应用程序的名称 appupdater.dll 最重要的部件,自动升级的主要组件 system.Resources.dll 资源文件 mscorlib.Resources.dll 核心资源文件 UpdateVersion.xml 服务器端版本升级配置文件 自动升级配置: 注意事项: 1. 因为自动升级组件appupdater代码里写死的原因,AppStart.config和AppStart.exe是不能改名的! 2. 服务器端最好使用Windows 2000 Server . 使用Windows 2003 Server 会因为网络安全策略造成访问不了服务器目录资源,升级失败。 3. 服务器端需要把提供升级的该站点配置为允许目录浏览。 4. 文件的层次结构必须如下配置: 客户端执行程序目录结构如下 AppStart.exe (不能改名) AppStart.config (不能改名) ClientExe (这个目录名称可以自定,但必须同时修改AppStart.config的AppFolderName项内容) TrySmartClient.exe(这个是自定的主应用程序) appupdater.dll (自动升级组件) 其中AppStart.config内容如下: <Config> <AppFolderName>ClientExe</AppFolderName> <AppExeName>TrySmartClient.exe</AppExeName> </Config> AppStart.config解释: <AppFolderName>ClientExe</AppFolderName> 告诉AppStart.exe要寻找的主应用程序目录名称。 <AppExeName>TrySmartClient.exe</AppExeName> 告诉AppStart.exe要寻找的主应用程序名。 服务器端目录结构(该目录需要设置为允许目录浏览): UpdateVersion.xml (必须,不能改名) Ver (可自定,但必须同时修改UpdateVersion.xml的ApplicationUrl项内容) TrySmartClient.exe (新版本主应用程序) mscorlib.Resources.dll (资源文件) system.Resources.dll(资源文件) 其中UpdateVersion.xml内容如下: <VersionConfig> <AvailableVersion>6.0.0.0</AvailableVersion> <ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl> </VersionConfig> UpdateVersion.xml解释: <AvailableVersion>6.0.0.0</AvailableVersion> 告诉客户端目前可用的版本,客户端appupdater组件会比较本地主应用程序版本号和该项配置的版本号,如果比本地的版本号更高,则进行下载更新。 <ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl> 告诉客户端到哪个网址进行下载更新 用了AppUpdater.dll后系统启动会出现下列问题,什么原因呢?-------------------------------------------------有关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾。************** 异常文本 **************System.InvalidOperationException: 该属性已经设置,不能修改。 在 System.Threading.Thread.set_Name(String value) 在 Microsoft.Samples.AppUpdater.AppDownloader.Start() 在 Microsoft.Samples.AppUpdater.AppUpdater.Initialize() 在 Microsoft.Samples.AppUpdater.AppUpdater.EndInit() 在 Setup.WZ.Custom.FormInstall.FormInstall_Load(Object sender, EventArgs e) 在 System.Windows.Forms.Form.OnLoad(EventArgs e) 在 System.Windows.Forms.Form.OnCreateControl() 在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) 在 System.Windows.Forms.Control.CreateControl() 在 System.Windows.Forms.Control.WmShowWindow(Message& m) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ScrollableControl.WndProc(Message& m) 在 System.Windows.Forms.ContainerControl.WndProc(Message& m) 在 System.Windows.Forms.Form.WmShowWindow(Message& m) 在 System.Windows.Forms.Form.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)************** 已加载的程序集 **************mscorlib 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------autorun 程序集版本: 2.0.0.0 Win32 版本: 2.0.0.0 基本代码: file:///D:/WZGT/Setup.WZ.Custom/Setup.WZ.Custom/bin/AppUpdate_4408/autorun.exe----------------------------------------System.Windows.Forms 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll----------------------------------------System.Drawing 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------AppUpdater 程序集版本: 1.0.0.17845 Win32 版本: 1.0.0.17845 基本代码: file:///D:/WZGT/Setup.WZ.Custom/Setup.WZ.Custom/bin/AppUpdate_4408/AppUpdater.DLL----------------------------------------System.Runtime.Serialization.Formatters.Soap 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Serialization.Formatters.Soap/2.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll----------------------------------------System.Xml 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll----------------------------------------System.Configuration 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll----------------------------------------mscorlib.resources 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400) 基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------System.resources 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.42 (RTM.050727-4200) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.resources.dll----------------------------------------System.Windows.Forms.resources 程序集版本: 2.0.0.0 Win32 版本: 2.0.50727.42 (RTM.050727-4200) 基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll----------------------------------------************** JIT 调试 **************要启用实时(JIT)调试,该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置jitDebugging 值。编译应用程序时还必须启用调试。例如: <configuration> <system.windows.forms jitDebugging="true" /></configuration>启用 JIT 调试后,任何无法处理的异常都将被发送到在此计算机上注册的 JIT 调试器,而不是由此对话框处理。 路过 对此一窍不通 偶也想学习 苦于无从下手 LZ是高手可否带偶入门啊QQ1013767936 C#程序怎么在运行时复制自身到指定目录 关于实体类的设计 属性到底该怎么理解?机制是怎么样的? 救命!!!水晶报表打印、输出问题???高手救我。 请教动态加载dll问题 简易机器人 最近写的一个程序 - ImageDivide 如何去掉水晶报表中的tooltip? 自己改造了一下DateTimePicker,可以实现空值,还没写完,大家多提意见 关于树型的问题 求助Application.Run(new Form1())异常 TableLayoutPanel 控件 怎样创建新的一行 代码实现
try
{
}
catch
{
}
自己做,提供如下思路:
1.服务端需有一个收集程序组件文件信息的服务(简称:AppService),每次发生更新时,检查组件的更新情况并缓存。
2.编写一个专门负责客户端更新的组件。该组件为程序的入口。每次启动程序,会先检查AppService是否正常。如正常,将客户端组件版本信息发送给AppService,由AppService对比缓存的组件最新版本信息,确定该请求客户端的更新包。AppSerivce提供更新包的生成。完成更新后,负责更新模块在按照配置信息加载真正的客户端程序入口组件。
ps:对于负责客户端更新组件的自身更新需特殊处理。
clickOne 、Bits在msdn里没有看到相应的内容,是在哪里可以找到?
除了在软件架构设计中需要规划好各功能项以备分别可以实现局部升级外,重要的是配置好自动升级组件。然而该自动升级组件并非直接引用即可,它需要遵守一定的规则部署才能完成自动升级。以下给出它的配置手册。
必备的文件清单: 文件名
功能描述
AppStart.exe
类似中介代理的程序,由它来启动真正的应用程序。不直接启动主应用程序是为了防止主应用程序升级的过程中被锁死而造成升级失败。
AppStart.config
AppStart.exe的配置文件,它指定要启动的应用程序所在目录,以及要启动应用程序的名称
appupdater.dll
最重要的部件,自动升级的主要组件
system.Resources.dll
资源文件
mscorlib.Resources.dll
核心资源文件
UpdateVersion.xml
服务器端版本升级配置文件
自动升级配置: 注意事项: 1. 因为自动升级组件appupdater代码里写死的原因,AppStart.config和AppStart.exe是不能改名的! 2. 服务器端最好使用Windows 2000 Server . 使用Windows 2003 Server 会因为网络安全策略造成访问不了服务器目录资源,升级失败。 3. 服务器端需要把提供升级的该站点配置为允许目录浏览。 4. 文件的层次结构必须如下配置: 客户端执行程序目录结构如下
AppStart.exe (不能改名)
AppStart.config (不能改名)
ClientExe (这个目录名称可以自定,但必须同时修改AppStart.config的AppFolderName项内容)
TrySmartClient.exe(这个是自定的主应用程序)
appupdater.dll (自动升级组件)
其中AppStart.config内容如下: <Config> <AppFolderName>ClientExe</AppFolderName> <AppExeName>TrySmartClient.exe</AppExeName> </Config> AppStart.config解释: <AppFolderName>ClientExe</AppFolderName> 告诉AppStart.exe要寻找的主应用程序目录名称。 <AppExeName>TrySmartClient.exe</AppExeName> 告诉AppStart.exe要寻找的主应用程序名。 服务器端目录结构(该目录需要设置为允许目录浏览):
UpdateVersion.xml (必须,不能改名)
Ver (可自定,但必须同时修改UpdateVersion.xml的ApplicationUrl项内容)
TrySmartClient.exe (新版本主应用程序)
mscorlib.Resources.dll (资源文件)
system.Resources.dll(资源文件)
其中UpdateVersion.xml内容如下: <VersionConfig> <AvailableVersion>6.0.0.0</AvailableVersion> <ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl> </VersionConfig> UpdateVersion.xml解释: <AvailableVersion>6.0.0.0</AvailableVersion> 告诉客户端目前可用的版本,客户端appupdater组件会比较本地主应用程序版本号和该项配置的版本号,如果比本地的版本号更高,则进行下载更新。 <ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl> 告诉客户端到哪个网址进行下载更新
-------------------------------------------------
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。************** 异常文本 **************
System.InvalidOperationException: 该属性已经设置,不能修改。
在 System.Threading.Thread.set_Name(String value)
在 Microsoft.Samples.AppUpdater.AppDownloader.Start()
在 Microsoft.Samples.AppUpdater.AppUpdater.Initialize()
在 Microsoft.Samples.AppUpdater.AppUpdater.EndInit()
在 Setup.WZ.Custom.FormInstall.FormInstall_Load(Object sender, EventArgs e)
在 System.Windows.Forms.Form.OnLoad(EventArgs e)
在 System.Windows.Forms.Form.OnCreateControl()
在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
在 System.Windows.Forms.Control.CreateControl()
在 System.Windows.Forms.Control.WmShowWindow(Message& m)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
在 System.Windows.Forms.ContainerControl.WndProc(Message& m)
在 System.Windows.Forms.Form.WmShowWindow(Message& m)
在 System.Windows.Forms.Form.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** 已加载的程序集 **************
mscorlib
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
autorun
程序集版本: 2.0.0.0
Win32 版本: 2.0.0.0
基本代码: file:///D:/WZGT/Setup.WZ.Custom/Setup.WZ.Custom/bin/AppUpdate_4408/autorun.exe
----------------------------------------
System.Windows.Forms
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
AppUpdater
程序集版本: 1.0.0.17845
Win32 版本: 1.0.0.17845
基本代码: file:///D:/WZGT/Setup.WZ.Custom/Setup.WZ.Custom/bin/AppUpdate_4408/AppUpdater.DLL
----------------------------------------
System.Runtime.Serialization.Formatters.Soap
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Serialization.Formatters.Soap/2.0.0.0__b03f5f7f11d50a3a/System.Runtime.Serialization.Formatters.Soap.dll
----------------------------------------
System.Xml
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Configuration
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
mscorlib.resources
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.1433 (REDBITS.050727-1400)
基本代码: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.resources
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.42 (RTM.050727-4200)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.resources.dll
----------------------------------------
System.Windows.Forms.resources
程序集版本: 2.0.0.0
Win32 版本: 2.0.50727.42 (RTM.050727-4200)
基本代码: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------************** JIT 调试 **************
要启用实时(JIT)调试,
该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
jitDebugging 值。
编译应用程序时还必须启用
调试。例如: <configuration>
<system.windows.forms jitDebugging="true" />
</configuration>启用 JIT 调试后,任何无法处理的异常
都将被发送到在此计算机上注册的 JIT 调试器,
而不是由此对话框处理。
QQ1013767936