我有一个通过它的.config:
使用程序集绑定的DLL<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
这是必需的,因为依赖项会加载冲突版本的Newtonsoft.Json(6.0与9.0),并且需要绑定来解决冲突。
我遇到的问题是这个DLL是一个Powershell模块,由powershell加载。它的.config
被忽略,运行时抛出异常:
My-cmdLet : Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral,
ublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.
通常我会通过修改托管exe .config
文件并添加相关的dll部分来解决这个问题。但在这种情况下,托管.exe是Powershell,我宁愿不搞乱那个 .config
。
DLL本身有没有办法正确解析绑定?