2009-12-04 5 views
5

Ich habe ein PowerShell-Snap-In zum Bearbeiten einer Datenbank. Das Snap-In selbst ist nur ein Wrapper für die Hauptbibliothek, die in einer separaten .NET-DLL implementiert ist, die alle in C# geschrieben sind.Verwenden der .NET-Bibliothek von PowerShell

ich registriert haben sowohl das Snap-In und die Implementierung DLLs mit dem GAC mit installutil.exe

Während das Snap-In funktioniert in Powershell in Ordnung, muss ich der Lage sein, um die Details Implementierung DLL für Dinge zugreifen wie Enums und dergleichen zum Durchgehen als Argumente für die Cmdlets.

Leider kann ich nicht auf den Inhalt der Klassen in PowerShell zugreifen, obwohl die Klassen als öffentlich markiert sind und alles, auf das ich zugreifen möchte, auch als öffentlich markiert ist.

Muss ich der Implementierungs-DLL etwas Besonderes tun, um sie in PowerShell sichtbar zu machen?

Antwort

6
Add-Type -AssemblyName "Your.Assembly.Name" 

Güte,

Dan

2

Add-Type wird für Powershell V2 arbeiten, wie durch Daniel beschrieben.

Sie können auch Reflexion sowohl V1 und V2 verwenden -

[System.Reflection.Assembly]::LoadFile('path to your dll') 
1

Ich benutzte Steven Methode DLL zu laden. Ich bevorzuge es, eine Variable zu verwenden, um es zu laden, so dass Sie Ergebnis in Ausgabeergebnis nicht sehen würden:

$loadLib = [System.Reflection.Assembly]::LoadFile('path to your dll'); 
Verwandte Themen