让你的.NET程序兼容不同版本的Dll文件

前段时间写的一个WinForm的.NET程序。因为引用了不少的库文件,但是最近这些库文件因为修正了一些Bug和算法。但是主的程序文件没有怎么改动。所以就不像把这个主程序重新编译了。于是就把所有的新版DLL文件拷贝到运行目录下,希望主程序能够直接调用新版的库文件。结果发现原来这些库文件都用Strong Name签了名的。主程序一调用就出错,说找不到该版本的文件。

后来查了一下MSDN,发现只要在config里面加入runtime节点就可以了。

<runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="MyAssembly"
                              publicKeyToken="2b7c3a3291de04"
                              culture="neutral" />
     <bindingRedirect oldVersion="3.0.0.8"
                             newVersion="4.1.0.0"/>

</dependentAssembly>
      </assemblyBinding>
   </runtime>

不过这有个前提条件就是这两个DLL的PublicKeyToken是一样的,就是需要用同一个sn文件签名的才行。

当然如果你的库文件根本就没有用Strong Name签名的话,就不用考虑版本问题了。

(0)

相关推荐

  • 让你的.NET程序兼容不同版本的Dll文件

    前段时间写的一个WinForm的.NET程序.因为引用了不少的库文件,但是最近这些库文件因为修正了一些Bug和算法.但是主的程序文件没有怎么改动.所以就不像把这个主程序重新编译了.于是就把所有的新版DLL文件拷贝到运行目录下,希望主程序能够直接调用新版的库文件.结果发现原来这些库文件都用Strong Name签了名的.主程序一调用就出错,说找不到该版本的文件. 后来查了一下MSDN,发现只要在config里面加入runtime节点就可以了. <runtime>      <assembl

  • 微信小程序收货地址API兼容低版本解决方法

    微信官方在三月底搞了不少事情.开放个人注册权限,蓝牙,与公众号打通,未来还会开发AR,图片识别,文字识别等等能力. 起初大家只是将微信小程序当做玩具看待,相信如今会有很多人把他当成一门技术去研究了.微信小程序的想象空间已经很大. 说说新增API之一的收货地址.虽然看看兼容低版本. 先上图. API很简单,就一行代码 wx.chooseAddress(OBJECT) 调起的是原生页面,体验很不错.对电商类的小程序比较有利. 不过API是从微信客户端 6.5.6 版本开始支持.这让我想起来做andr

  • 兼容低版本IE的JScript5.5实现

    作者Blog:www.coolcode.cn IE 5.5 中的 JScript 版本是 5.5 版,它比以前版本的 JScript 中多了如数组的 push.pop.shift.unshift 方法和 encodeURI.decodeURI 等一些重要的函数.而这些增加的内容在目前其他浏览器(如 Moziila/Firefox 和 Opera)上也同样支持.因此目前开发网站一般对于 IE 浏览器只能兼容到 5.5 版,而对于更低版本的 IE(如 IE 5.IE 4 等),则不再去考虑了.虽然这

  • 小程序兼容安卓和IOS数据处理问题及坑

    最近开发微信小程序,遇到到过种坑,例如什么前端发送请求,后端请求成功,没有获取到前端传递的值:后端请求成功,并且值,前端就是出不来数据:请求接口出现Provision headers are shown的现象:到最后苹果手机上出现数据,安卓手机出现不了数据等等,非常多的bug.备注后端我用的php开发的,框架用的TP5.0,我一度怀疑是我框架的原因.安卓需要的是字符串,苹果好像都行吧,我是做的兼容处理. 作为一名程序员,连bug都没有,你还开发什么软件?废话不说了先上问题吧: 1.小程序前端发送

  • Android 实现高斯模糊效果且兼容低版本

    一.效果演示 项目中用到了高斯模糊效果,查阅过一些资料,考虑到性能问题最终还是选择使用Android自带的RenderScript库来实现,关于使用RenderScript来实现高斯模糊网上也有很多类似的方法,大部分都总结的比较乱,此处算是做一个整理吧,供有类似需求的同学参考及学习. (项目效果图) 简单描述项目效果图的实现思路: ① 加载定义的xml的Layout ② 使用截屏方法获取当前窗口的Bitmap对象 ③ 将Bitmap对象进行压缩及高斯模糊处理 ④ 将处理过的模糊图对象作为①中所加

  • Linux 中如何切换相同程序的不同版本

    几天前,我们曾经讨论如何 如何在不同的 PHP 版本之间进行切换 .在那篇文章中,我们使用 update-alternatives 命令实现从一个 PHP 版本切换到另一个 PHP 版本.也就是说, update-alternatives 命令可以将 系统范围 system wide 默认使用的 PHP 版本设置为我们希望的版本.通俗的来说,你可以通过 update-alternatives 命令从系统范围设置程序的版本.如果你希望可以在不同目录动态设置不同的程序版本,该如何完成呢?在这种情况下

  • vue3+vite兼容低版本的白屏问题详解(安卓7/ios11)

    目录 如何兼容ios11 如何兼容安卓7 如何使用@vitejs/plugin-legacy 补充知识:vue打包项目以后白屏和图片加载不出来问题解决方法 总结 vue3打包后在低版本浏览器或webview中出现白屏,原因就是因为语法兼容问题.根据vite官方文档描述,build.target默认支持 Chrome >=87.Firefox >=78.Safari >=14.Edge >=88 传送,所以需要我们手动兼容低版本. 本篇以vite2.安卓7/ios11为例. 如何兼容

  • Vue中 引入使用 babel-polyfill 兼容低版本浏览器的方法

    目录 1. 兼容低版本浏览器方法 1.1 安装 babel-polyfill 1.2 引入 1.3(新增)在 babel.config.js 中配置 1.4 在 vue.config.js (新增)配置 transpileDependencies 2. vue-cli 2.x 中配置 babel 转换 拓展:关于 Babel 简介 注意:本文主要介绍的 vue-cli 版本:3.x, 4.x:最近在项目中使用 webpack 打包后升级,用户反馈使用浏览器(chrome 45)访问白屏.经过排查

  • PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析

    本文实例分析了PHP5.0~5.6 各版本兼容性cURL文件上传功能.分享给大家供大家参考,具体如下: 最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件.踩坑若干,够一篇文章了. 重要警告 没事不要读PHP的官方中文文档!版本跟不上坑死你! 不同版本PHP之间cURL的区别 PHP的cURL支持通过给CURL_POSTFIELDS传递关联数组(而不是字符串)来生成multipart/form-data的POST请求. 传统上,PHP的cURL支持通

  • pyinstaller打包exe程序的步骤和添加依赖文件的实现

    目录 pyinstaller打包exe程序和添加依赖文件 1.安装pyinstaller库 2.pyinstaller的打包机制 3.打包命令 4.添加导包外的一些依赖文件 5..spec方式打包 6.pyinstaller常用参数 pyinstall打包时的依赖问题 pyinstaller打包exe程序和添加依赖文件 或许我们并不是专业的程序猿,但是却可以通过python来提高我们的工作效率,减少加班时间,让代码替我们完成一些重复的工作,节省下来的时间去泡个妹子,牵牵小手不香吗 话不多说,马上

随机推荐