【发布时间】:2014-08-02 14:39:09
【问题描述】:
我有一个自定义 .NET 程序集,其中包含一些 powershell cmdlet,而不是用于常见域相关任务。我刚刚创建了一个新的 cmdlet,它引用了一个引用了 Newtonsoft.Json 4.5.0.0 的第三方库。然而,我的其他项目之一使用最新版本的 json.net (6.0.0.0)。所以在 powershell fusion 运行时会抛出一个错误,说它无法加载 newtonsoft.json 4.5.0.0。
我已经尝试创建一个 powershell.exe.config 并在其中放置一个程序集重定向:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json", Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed/>
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
但这似乎不起作用。融合日志确实表明它正在寻找这个新的 powershell 配置文件,但它似乎没有接收到重定向。
这里有点难找解决方案。任何线索可能是什么问题?同样的重定向适用于我的一些业务服务,否则它们会遇到同样的问题(他们也使用这个 3rd 方库和 json.net 6)。
干杯
【问题讨论】:
标签: .net powershell assembly-resolution