让你的.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签名的话,就不用考虑版本问题了。

时间: 2024-10-29 04:13:32

让你的.NET程序兼容不同版本的Dll文件_实用技巧的相关文章

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

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

如何在不同.net版本实现单点登录_实用技巧

所谓单点登录(Single Sign On就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.其实对于程序员在技术上要实现就得就是多个不同域名间共享cookie的问题. 最近在为ERP添加一个部署在另一台机器上,链接到原有老系统中的子项目,调用原有老项目中的Login实现单点登录,尝试了N次屡试不成,最后确定问题,是,.net2.0与4.0中对cookie的加密/解密方法由此差异,于是经过研究,重写实现了一个可以在不同.net版本中实现单点登录的简单方法. 1,共用登陆页代

asp.net 程序优化精选第1/2页_实用技巧

1.数据库访问性能优化 数据库的连接和关闭        访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求.连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接

解决ASP.NET中&quot;/&quot;应用程序中的服务器错误的方法_实用技巧

 学习asp.net中讲解验证控件问题时,我的程序运行时总是提示这样的问题:"/"应用程序中的服务器错误.如下图:     从网上找到了相关的方法:  在webconfig中找到 <appSettings> <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" /> <addkey="ValidationSettings:U

.NET获取客户端的操作系统版本、浏览器版本和IP地址_实用技巧

我们在使用.NET做网站的时候,很多情况下需要需要知道客户端的操作系统版本和浏览器版本,怎样获取客户端的操作系统和浏览器版本呢?我们可以通过分析UserAgent来获取. .NET 获取客户端的操作系统 请看下面的代码,我们首先创建一个通过分析UserAgent来获取操作系统的方法 /// <summary> /// 获取操作系统的名字 /// </summary> /// <param name="userAgent"></param>

asp.net Silverlight应用程序中获取载体aspx页面参数_实用技巧

1. 使用InitParameters属性,动态设置传递参数 . 2. 在SL工程中使用HtmlPage类来直接获取页面参数. 下面是利用HtmlPage类来获取参数的代码: 复制代码 代码如下: void Page_Loaded(object sender, RoutedEventArgs e){ IDictionary<String, String> paras = HtmlPage.Document.QueryString; this.lblUserName.Text = paras[&

Asp.net中获取应用程序完整Url路径的小例子_实用技巧

复制代码 代码如下: /// <summary> /// Gets the absolute root /// </summary> public static Uri AbsoluteWebRoot {     get  www.jb51.net    {         var context = HttpContext.Current;         UriBuilder uri = new UriBuilder();         uri.Host = context.

.NET命令行解析器示例程序(命令行选项功能)_实用技巧

示例需求 拷贝文件,如:CopyFiles -s "E:\Framework\Tenoner - 副本 (2)" -p "*.csproj" -t "E:\Framework\Tenoner - 副本 (2)\Bak",可以支持:深度拷贝.拷贝符合指定模式的文件.是否覆盖等选项. 使用 CommandLineParserCommandLineParser 是一个轻量级的工具,使用非常简答,官方也有教程. 选项类 复制代码 代码如下: using

Asp.Net 程序错误Runtime Error原因与解决_实用技巧

Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely (for security reasons). It could, however, be viewe