首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用PowerShell运行我的第三方DLL文件

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

Stack Overflow用户
提问于 2011-11-02 03:58:36
回答 4查看 89.3K关注 0票数 32

我不确定PowerShell是否可以做到这一点。

但基本上我有一个Windows Forms程序,用于配置一个名为EO服务器的程序。EO服务器有一个应用程序接口,我引用EOServerAPI.dll来运行下面的代码。

代码语言:javascript
复制
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窗体应用程序中相同类型的调用?

EN

回答 4

Stack Overflow用户

发布于 2011-11-02 04:13:57

是的,您可以:

代码语言:javascript
复制
Add-Type -Path $customDll
$a = new-object custom.type

您可以像这样调用静态方法:

代码语言:javascript
复制
[custom.type]::method()

除了Add-Type,您还可以使用反射:

代码语言:javascript
复制
[Reflection.Assembly]::LoadFile($customDll)

(请注意,即使是上面的代码也在调用反射库和LoadFile静态方法。)

票数 39
EN

Stack Overflow用户

发布于 2011-11-02 04:09:56

请看博客帖子。如果您可以在.NET中与对象交互,那么您可能也可以在PowerShell中这样做。

票数 12
EN

Stack Overflow用户

发布于 2019-04-20 14:59:07

实际上,其他提供的解决方案对我不起作用,这里是一个完全适合我的替代方案:

代码语言:javascript
复制
$AssemblyPath = "C:\SomePath\SomeLIB.dll"
$bytes = [System.IO.File]::ReadAllBytes($AssemblyPath)
[System.Reflection.Assembly]::Load($bytes)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7972141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档