2011-11-01 51 views
18

No estoy seguro de si esto es posible o no con PowerShell.Ejecutar mi archivo DLL de terceros con PowerShell

Pero básicamente tengo un programa Windows Forms que configura un programa llamado servidor EO. El servidor EO tiene una API, y hago una referencia a EOServerAPI.dll para ejecutar el siguiente código.

using EOserverAPI; 
... 
private void myButton_Click(object sender, EventArgs e) 
{ 
    String MDSConnString="Data Source=MSI;Initial Catalog=EOMDS;Integrated Security=True;"; 

    //Create the connection 
    IEOMDSAPI myEOMDSAPI = EOMDSAPI.Create(MDSConnString); 

    //Get JobID 
    Guid myMasterJobID = myEOMDSAPI.GetJobID("myJobRocks"); 
} 

¿Es posible interactuar con un archivo DLL de principios activos y de hacer los mismos tipos de llamadas como lo haría en una aplicación Windows Forms?

Respuesta

8

Eche un vistazo a la publicación del blog Load a Custom DLL from PowerShell. Si puede interactuar con un objeto en .NET, probablemente también pueda hacerlo en PowerShell.

28

Sí, se puede:

Add-Type -Path $customDll 
$a = new-object custom.type 

se llama a un método estático de este modo:

[custom.type]::method() 

En lugar de Add-Type, también se puede utilizar la reflexión:

[Reflection.Assembly]::LoadFile($customDll) 

(Tenga en cuenta que incluso lo anterior llama a la biblioteca Reflection y al método estático LoadFile).

+0

Estoy perdido con la segunda afirmación. $ a = new-object custom.type No sé cómo llamar a mi custom.type ¿Podría ayudarme? – MicroSumol

Cuestiones relacionadas