Ich habe eine benutzerdefinierte .NET-Assembly mit einigen Powershell-Cmdlets als ich für allgemeine domänenbezogene Aufgaben verwenden. Ich habe gerade ein neues Cmdlet erstellt, das auf eine Bibliothek von Drittanbietern verweist, die einen Verweis auf Newtonsoft.Json 4.5.0.0 enthält. Eines meiner anderen Projekte verwendet jedoch die neueste Version von json.net (6.0.0.0). So zur Laufzeit in Powershell-Fusion wirft einen Fehler, der besagt, dass es Newtonsoft.json 4.5.0.0 nicht laden kann.Powershell Config Assembly Redirect
Ich habe versucht, eine powershell.exe.config Erstellen und setzen eine Versammlung dort umleiten:
<?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>
aber das scheint nicht zu funktionieren. Das Fusionsprotokoll gibt an, dass es in dieser neuen Konfigurationsdatei nach Powershell sucht, aber es scheint nicht die Umleitung aufzunehmen.
Bit für Lösungen hier ratlos. Irgendwelche Hinweise, was das Problem sein könnte? Dieselbe Umleitung funktioniert in einigen meiner Geschäftsdienste, die sonst das gleiche Problem hätten (sie verwenden auch diese 3rd-Party-Lib und json.net 6).
Prost
Hallo, Ich arbeitete an einem ähnlichen Problem, und ich denke, dass dies verwandt sein könnte. Können Sie bitte den relevanten Teil Ihres Fusionsprotokolls posten? Und auch, die spezifischen Montagefehler, wenn Sie versuchen und laden (Montage nicht gefunden?) – killthrush