除了在软件架构设计中需要规划好各功能项以备分别可以实现局部升级外,重要的是配置好自动升级组件。然而该自动升级组件并非直接引用即可,它需要遵守一定的规则部署才能完成自动升级。以下给出它的配置手册。
必备的文件清单:
文件名 |
功能描述 |
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>
<ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl>
</VersionConfig>
UpdateVersion.xml解释:
<AvailableVersion>
告诉客户端目前可用的版本,客户端appupdater组件会比较本地主应用程序版本号和该项配置的版本号,如果比本地的版本号更高,则进行下载更新。
<ApplicationUrl>http://YourServerDomainName/SmartServer/Ver/</ApplicationUrl>
告诉客户端到哪个网址进行下载更新
按上述目录结构和配置文件内容,appupdater组件的关键属性配置应该如下:
AutoFileLoad |
:True |
ChangeDetectionMode |
ServerManifestCheck |
UpdateUrl |
http://YourServerDomainName/SmartServer/UpdateVersion.xml |
appupdater组件关键属性配置解释:
AutoFileLoad = true //允许自动文件装载
ChangeDetectionMode :ServerManifestCheck //检测模式:根据配置文件进行检测,也就是UpdateUrl属性指定的文件。
UpdateUrl :指定自动升级组件检测服务器端升级配置文件统一资源定位位置和文件名。(也就是网址)
上述配置在.Net Framework 1.1 和Windows2000下测试通过.