SmartAssembly,用一行代码和简单的配置文件,几分钟轻松搞定客户端软件的自动升级。

为了使你的客户端软件能够能过这种方法升级,你需要把可能会发生变化的Form、算法、业务逻辑等做在dll里面。而实际上,我通常把除了系统的第一个Form以外的所有东西,全部做成dll,谁知道哪些东西可能会变呢?而且系统的第一个Form我通常都做得特别简单,一般仅仅是个欢迎页面,没有变化的需要。

先大概说一下使用SmartAssembly你需要做些什么。首先你需要一台服务器,所有的客户端都能够连接到这台服务器。然后你需要在这台服务器上运行IIS,并建立一个虚拟目录。最后,当某一Dll有新版本时,你只要把它拷贝到这台服务器上的那个目录下即可。因为用户每一次运行客户端程序时,它都会自动到服务器上的虚拟目录中搜索,发现新版本的Dll,会自动下载并替换掉旧版本的Dll。

服务器的IP和所有Dll的名称都在配置文件里面指定,非常简单易懂。而且整个过程,你只需要增加一条额外的代码。

需要加入的一行代码是:

在Main函数中的Application.Run语句前加入如下代码:   

ConfigurationSettings.GetConfigLightning.SmartAssemblyConfig.SectionName);
 Application.Run();

配置文件如下:

<configuration>
  <configSections>
  <section name="smartAssemblyConfiguration" type="Lightning.SmartAssemblyConfig, SmartAssembly"/>
 </configSections>
 
 <smartAssemblyConfiguration>
  <cacheDirectory path="%ComAppData%/Assembly/Origin" type="KeepAllVersions" packageFilePath="%ComAppData%/Assembly/ZipFiles" />
  <netSetting agentName="Smart Assemlbly Manager" bufferSize="8182" timeout="-1" rollBack="1024" proxyMode="">
   <proxy address="" port="" bypassLocal="" bypassAddresses="" />
  </netSetting>
  <loadLogic notCheckRemoteWhileMatched="true"
     downloadNewerOnly="true"
     tryLatestVersionWhileNotMatch="true"
     smartMatch="true"
     loadSymbols="true"
     loadMethod="ShadowCopy"
     identifiedByName="true"
     workOffline="false"
     baseHref="http://127.0.0.1/Assembly/"
     defaultZipFile="old.zip" />

  <dependentAssembly>
   <assemblyIdentity name="SecondForm" publicKeyToken="" culture="" />
   <codeBase version="1.1.0.0" href="SecondForm.dll"/>
  </dependentAssembly> 
  
  
 </smartAssemblyConfiguration>
 
</configuration>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值