天天看點

解決間接引用庫版本更新帶來的煩惱(.NET)

某個項目中使用了一個工具集庫Toolkit.dll,這個工具集庫中封裝的資料庫通路部分引用了其它資料庫元件,比如SQLite的通路元件庫System.Data.SQLite。由于在Toolkit.dll生成的時候System.Data.SQLite的最新版本是1.0.82.0,而現在要使用的System.Data.SQLite是1.0.90.0,結果在換了System.Data.SQLite.dll之後,報告了一個錯誤:

<a href="http://s3.51cto.com/wyfs02/M01/12/10/wKiom1L3N7qBnkHkAAEdV2CpXSU634.jpg" target="_blank"></a>

1

2

3

4

5

6

7

8

9

10

<code>&lt;</code><code>configuration</code><code>&gt;</code>

<code>    </code><code>&lt;</code><code>runtime</code><code>&gt;</code>

<code>        </code><code>&lt;</code><code>assemblyBinding</code> <code>xmlns</code><code>=</code><code>"urn:schemas-microsoft-com:asm.v1"</code><code>&gt;</code>

<code>            </code><code>&lt;</code><code>dependentAssembly</code><code>&gt;</code>

<code>                </code><code>&lt;</code><code>assemblyIdentity</code> <code>name</code><code>=</code><code>"System.Data.SQLite"</code> <code>publicKeyToken</code><code>=</code><code>"db937bc2d44ff139"</code> <code>/&gt;</code>

<code>                </code><code>&lt;</code><code>bindingRedirect</code> <code>oldVersion</code><code>=</code><code>"1.0.82.0"</code> <code>newVersion</code><code>=</code><code>"1.0.90.0"</code> <code>/&gt;</code>

<code>            </code><code>&lt;/</code><code>dependentAssembly</code><code>&gt;</code>

<code>        </code><code>&lt;/</code><code>assemblyBinding</code><code>&gt;</code>

<code>    </code><code>&lt;/</code><code>runtime</code><code>&gt;</code>

<code>&lt;/</code><code>configuration</code><code>&gt;</code>

其中publicKeyToken是從報告的錯誤中抄的。另外,如果oldVersion不确定的情況下,也可以配置成一個範圍,比如:

<code>&lt;</code><code>bindingRedirect</code> <code>oldVersion</code><code>=</code><code>"1.0.0.0-2.0.0.0"</code> <code>newVersion</code><code>=</code><code>"1.0.90.0"</code> <code>/&gt;</code>

需要注意的是,在幹這個事情之前最好确認新版本的引用庫不會造成新的問題,否則還是引用舊庫比較穩當。

本文轉自邊城__ 51CTO部落格,原文連結:http://blog.51cto.com/jamesfancy/1358594,如需轉載請自行聯系原作者