Подтвердить что ты не робот

Запустите мой сторонний DLL файл с помощью PowerShell

Я не уверен, возможно ли это или нет с помощью PowerShell.

Но в основном у меня есть программа Windows Forms, которая настраивает программу под названием EO Server. Сервер EO имеет API, и я делаю ссылку на EOServerAPI.dll, чтобы выполнить следующий код.

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");
}

Возможно ли взаимодействовать с DLL файлом API и делать те же типы вызовов, что и в приложении Windows Forms?

4b9b3361

Ответ 1

Да, вы можете:

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

Вы вызываете статический метод следующим образом:

[custom.type]::method()

Вместо Add-Type вы также можете использовать отражение:

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

(Обратите внимание, что даже выше вызывается библиотека Reflection и статический метод LoadFile.)

Ответ 3

На самом деле, другие предлагаемые решения не работают для меня, вот альтернатива, которая идеально подходит для меня:

$AssemblyPath = "C:\SomePath\SomeLIB.dll"
$bytes = [System.IO.File]::ReadAllBytes($AssemblyPath)
[System.Reflection.Assembly]::Load($bytes)