我遇到了一个问题,在这个问题上,我遇到了一个错误,就是试图加载一个不再在机器上的旧版本的dll。
无法加载文件或程序集“Newtonsoft.Json、Version=6.0.0.0、Culture=neutral、PublicKeyToken=30ad4fe6b2a6aeed”或其依赖项之一。所定位的程序集的清单定义与程序集引用不匹配。(HRESULT例外: 0x80131040)
我已经在webconfig中进行了重定向以处理以下问题:
<dependentAssembly>
<assemblyIdentity name="NewtonSoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>解决方案中没有对6.0.0.0构建的引用。也许是依赖关系?如果是这样,我不知道如何获得运行时间来告诉我谁是有罪的部分。
为什么这仍然是错误的?
发布于 2017-06-22 14:14:37
原来答案就在我面前。assemblyBinding标记具有一个appliesTo属性,该属性指定每个.Net框架版本应该重定向哪个版本。
assemblyBinding appliesTo="v2.0.50727"由于某种原因,它被设置为v2.0 --应用程序正在运行v4.0,因此重定向在不应用的地方。删除该属性将纠正此问题。
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="NewtonSoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>https://stackoverflow.com/questions/44661567
复制相似问题