首页 新闻 会员 周边

请教关于引用dll的版本号问题。

0
悬赏园豆:5 [已关闭问题]

假设一个dll版本号是1.6.8.1

我的winform程序引用了这个dll。

现在我升级了这个dll到3.0.0.0.能否在不编译winform的情况下,直接拷贝这个新的3.0.0.0的dll到目录下,让winform直接执行?

 

如果这个dll是我自己开发的,似乎没有遇到什么问题,其他所有引用了这个dll的其他类库都不会报错(只要这个dll的对外接口没有变动)

 

但是如果这个dll是第三方控件公司开发的,例如ribbon, 我曾经升级了这个dll到3.0。0.0之后,会报错,说缺少1.6.8.1的dll程序集。

 

请教.net的dll引用机制,到底是如何判断的?

辰的主页 | 初学一级 | 园豆:27
提问于:2010-02-13 19:45
< >
分享
其他回答(2)
0

可能是强签名部署到GAC,查看sn命令

http://msdn.microsoft.com/zh-cn/library/aa560264%28BTS.10%29.aspx

邀月 | 园豆:25475 (高人七级) | 2010-02-14 15:04
0

第三方公司采用强命名了,强命名的好处在于不容易造成dll 调用的混乱。

eaglet | 园豆:17139 (专家六级) | 2010-02-19 06:42
0

好像可以。web.config里面有个配置,可以指定旧的版本引用全部指向新版本。

 

 <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
          <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
      </assemblyBinding>
    </runtime>

浪子 | 园豆:295 (菜鸟二级) | 2010-02-24 14:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册