使用PowerShell运行我的第三方DLL文件

使用PowerShell运行我的第三方DLL文件,powershell,powershell-2.0,powershell-remoting,Powershell,Powershell 2.0,Powershell Remoting,我不确定这在PowerShell中是否可行 但基本上我有一个程序,配置一个叫做EO服务器的程序。EO服务器有一个API,我引用EOServerAPI.dll以运行以下代码 using EOserverAPI; ... private void myButton_Click(object sender, EventArgs e) { String MDSConnString="Data Source=MSI;Initial Catalog=EOMDS;Integrated Security

我不确定这在PowerShell中是否可行

但基本上我有一个程序,配置一个叫做EO服务器的程序。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");
}

是否可以与API DLL文件交互并进行与Windows窗体应用程序中相同类型的调用?

请看这篇博文。如果您可以在.NET中与对象进行交互,您可能也可以在PowerShell中进行交互。

是的,您可以:

Add-Type -Path $customDll
$a = new-object custom.type
您可以这样调用静态方法:

[custom.type]::method()
除了添加类型,还可以使用反射:

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

(请注意,即使是上面提到的调用反射库和加载文件静态方法。)

事实上,其他提供的解决方案对我并不适用,这里有一个非常适合我的替代方案:

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

信息。获取名称空间和类

$types = Add-Type -Path $dllPath -PassThru
$types | ft fullname
$types
如果它不是“可执行”dll(某些获取/设置dll),那么这是我所知道的最好的(创建示例dll时不需要):


第二句话让我不知所措$a=新对象custom.type我不知道如何调用我的custom.type您能帮我吗?@MicroSumol该类型是您的类的完全限定名(名称空间+类名)。例如A.B.C.类名
$types = Add-Type -Path $dllPath -PassThru
$types | ft fullname
$types