Leider können Sie .NET-Assemblies, die in die Standard-AppDomain geladen wurden, nicht entladen, was Add-Type tut. Sie können Typen oder Namespaces umbenennen, um mitzuhalten, aber irgendwann müssen Sie PowerShell beenden und neu starten.
Dies ist keine PowerShell-Einschränkung, sondern eine .NET/CLR-Einschränkung. Sie können .NET-Assemblys in separate Anwendungsdomänen laden, die später entladen werden können. Sie müssten dies jedoch selbst programmieren. Dadurch werden die Typen eingeschränkt, die Sie in der separaten Anwendungsdomäne verwenden möchten. Das heißt, diese Typen müssen über .NET Remoting arbeiten, sodass sie entweder von MarshByRefObject abgeleitet werden müssen oder serialisierbar sein müssen (und dies gilt für alle Objekte, auf die von ihren Eigenschaften verwiesen wird, usw. in der Objektgrafik).
Gibt es einen Befehl zum Zurücksetzen der Powershell-Sitzung? – Agzam
Es gibt keine Möglichkeit, Baugruppen zu entfernen, die über Add-Type hinzugefügt wurden. Sie müssen PowerShell neu starten. Sie können die Assemblys über Add-Type laden und mit diesen Typen experimentieren, indem Sie Hintergrundjobs (Start-Job) verwenden. Bei jedem Job wird eine neue PowerShell-Instanz gestartet, die nach Abschluss dieses Jobs nicht mehr verfügbar ist. –
Aber was ist, wenn Sie Inline-C# -Code im Skript haben? Es macht das Debuggen des Skripts schmerzhaft – Agzam