Cómo hacer referencia a los ensamblados .NET utilizando PowerShell

Soy desarrollador / arquitecto de C # .NET y entiendo que usa objetos (objetos .NET) y no solo secuencias / texto.

Me gustaría poder utilizar PowerShell para llamar a métodos en mis ensamblajes .NET (biblioteca C #).

¿Cómo hago referencia a un ensamblaje en PowerShell y uso el ensamblaje?

Eche un vistazo a la publicación del blog Load a Custom DLL from PowerShell :

Tomemos, por ejemplo, una biblioteca matemática simple. Tiene un método Sum estático y un método de Producto de instancia:

namespace MyMathLib { public class Methods { public Methods() { } public static int Sum(int a, int b) { return a + b; } public int Product(int a, int b) { return a * b; } } } 

Comstackr y ejecutar en PowerShell:

 > [Reflection.Assembly]::LoadFile("c:\temp\MyMathLib.dll") > [MyMathLib.Methods]::Sum(10, 2) > $mathInstance = new-object MyMathLib.Methods > $mathInstance.Product(10, 2) 

Con PowerShell 2.0, puede usar el complemento incorporado Cmdlet.

Solo necesitarás especificar la ruta al dll.

 Add-Type -Path foo.dll 

Además, puede usar C # o VB.NET en línea con Add-Type. La syntax @ “es una cadena AQUÍ.

 C:\PS>$source = @" public class BasicTest { public static int Add(int a, int b) { return (a + b); } public int Multiply(int a, int b) { return (a * b); } } "@ C:\PS> Add-Type -TypeDefinition $source C:\PS> [BasicTest]::Add(4, 3) C:\PS> $basicTestObject = New-Object BasicTest C:\PS> $basicTestObject.Multiply(5, 2)