Mehrere Powershell-Versionen in Visual-Studio C-Sharp CmdLet-Project unterstützen
Hallo Alle,
In unserem Unternehmen gibt es leider einige Maschinen die noch mit Powershell 5.0 betankt sind, weil sie aufgrund von Abhängigkeiten einige Updates nicht empfangen dürfen.
Ich schreibe gerade ein CmdLet in C# und nutze dafür die Nuget-Extension Microsoft.PowerShell.5.1.ReferenceAssemblies. Die älteren Maschinen würden aber Microsoft.PowerShell.5.0.ReferenceAssemblies benötigen. Andernfalls bekomme ich einen sehr unschönen Fehler (Der Objekt-Verweis wurde nicht auf eine Object-Instanz festgelegt) und das CmdLet kann nicht verwendet werden.
Das Problem:
Ich kann nicht beide Microsoft.PowerShell.ReferenceAssemblies gemeinsam oder gleichzeitig nutzen, müsste also 2 Solutions erstellen und dann auch noch feststellen auf welcher Maschine ich welche Dll verwenden darf. Das ist sehr umständlich und nicht praktikabel.
Hat jemand eine Idee wie ich dieses Problem lösen kann?
Danke für die Unterstützung!
Mayho
In unserem Unternehmen gibt es leider einige Maschinen die noch mit Powershell 5.0 betankt sind, weil sie aufgrund von Abhängigkeiten einige Updates nicht empfangen dürfen.
Ich schreibe gerade ein CmdLet in C# und nutze dafür die Nuget-Extension Microsoft.PowerShell.5.1.ReferenceAssemblies. Die älteren Maschinen würden aber Microsoft.PowerShell.5.0.ReferenceAssemblies benötigen. Andernfalls bekomme ich einen sehr unschönen Fehler (Der Objekt-Verweis wurde nicht auf eine Object-Instanz festgelegt) und das CmdLet kann nicht verwendet werden.
Das Problem:
Ich kann nicht beide Microsoft.PowerShell.ReferenceAssemblies gemeinsam oder gleichzeitig nutzen, müsste also 2 Solutions erstellen und dann auch noch feststellen auf welcher Maschine ich welche Dll verwenden darf. Das ist sehr umständlich und nicht praktikabel.
Hat jemand eine Idee wie ich dieses Problem lösen kann?
Danke für die Unterstützung!
Mayho
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 594832
Url: https://administrator.de/contentid/594832
Ausgedruckt am: 23.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Einfach den Common Namespace der niedrigsten Version importieren und die niedrigste zu unterstützende NET Framework Version für das Projekt auswählen.
https://www.powershellmagazine.com/2014/03/18/writing-a-powershell-modul ...
Dann läuft das auch auf den neueren PS Versionen.
https://www.powershellmagazine.com/2014/03/18/writing-a-powershell-modul ...
Dann läuft das auch auf den neueren PS Versionen.
Hmm, geht hier aber problemlos.