讓你的.NET程序兼容不同版本的Dll文件 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- 讓你的.NET程序兼容不同版本的Dll文件 (http://www.webasp.net/article/18/17136.htm) |
| -- 作者:未知 -- 發佈日期: 2005-03-23 |
| 前段時間寫的一個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簽名的話,就不用考慮版本問題了。 |
| webasp.net |