我有一个在开发环境中引用此程序集的应用程序:
name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="89845dcd8080cc91" version="9.0.242.0"
但是,实时服务器包含此库的旧版本:
name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="b77a5c561934e089" version="3.2.2917.0"
如您所见,publicKeyToken与众不同。我已将bindingRedirect添加到app.config:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.SqlXml" culture="neutral" publicKeyToken="89845dcd8080cc91" />
<bindingRedirect oldVersion="9.0.242.0" newVersion="3.2.2917.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
但我仍然收到错误:
未处理的异常:System.IO.FileNotFoundException:无法加载 file或ass embly'Microsoft.Data.SqlXml,Version = 3.2.2917.0, Culture = neutral,PublicKeyToke n = 89845dcd8080cc91'或其中一个 依赖。该系统找不到指定的文件。文件名: 'Microsoft.Data.SqlXml,Version = 3.2.2917.0,Culture = neutral,PublicKe yToken = 89845dcd8080cc91'---&gt; System.IO.FileNotFoundException:可以 不加载文件或程序集'Microsoft.Data.SqlXml,Version = 9.0.242.0, Culture = neutral,Publi cKeyToken = 89845dcd8080cc91'或其中一个 依赖。该系统找不到指定的文件。文件名: 'Microsoft.Data.SqlXml,Version = 9.0.242.0,Culture = neutral,PublicKey 标记= 89845dcd8080cc91'
在这种情况下,有没有办法重定向到旧版本的库?
答案 0 :(得分:8)
如果公钥不同,则无法重定向程序集我担心,您需要针对旧版本重新编译并删除重定向。