2009-12-04 12 views
5

Tengo un complemento de PowerShell para manipular una base de datos. El complemento en sí mismo es solo un contenedor para la biblioteca principal implementada en una DLL .NET separada, todo escrito en C#.Uso de la biblioteca .NET de PowerShell

He registrado tanto en el complemento y las DLL de implementación con el GAC utilizando installutil.exe

Mientras que el complemento funciona bien en PowerShell, que necesitan poder acceder a los detalles de implementación para las cosas DLL como enums y similares para pasar como argumentos a los cmdlets.

Desafortunadamente, no puedo acceder al contenido de las clases dentro de PowerShell aunque las clases están marcadas como públicas y todo lo que intento acceder también se marca como público.

¿Tengo que hacer algo especial con la DLL de implementación para que sea visible dentro de PowerShell?

Respuesta

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

Bondad,

Dan

2

Add-Type funcionará para PowerShell V2 como se describe por Daniel.

También puede utilizar la reflexión, tanto en V1 y V2 -

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

que utiliza el método de Steven para cargar DLL. Prefiero usar una var para cargarlo para que no vea el resultado en el resultado de salida:

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