10

我有一个用于操作数据库的 PowerShell 管理单元。管理单元本身只是主库的包装器,主库在一个单独的.NET DLL 中实现,全部用 c# 编写。

我已经使用 installutil.exe 向 GAC 注册了管理单元和实现 DLL

虽然管理单元在 PowerShell 中运行良好,但我需要能够访问实现 DLL 的详细信息,以获取枚举等内容,以便将其作为参数传递给 cmdlet。

不幸的是,我无法访问 PowerShell 中类的内容,即使这些类被标记为公共并且我尝试访问的所有内容也被标记为公共。

我是否必须对实现 DLL 做一些特殊的事情才能使其在 PowerShell 中可见?

4

3 回答 3

12
Add-Type -AssemblyName "Your.Assembly.Name"

善良,

于 2009-12-04T11:37:44.097 回答
4

Daniel所述,Add-Type 将适用于 PowerShell V2 。

您还可以在 V1 和 V2 中使用反射 -

[System.Reflection.Assembly]::LoadFile('path to your dll')
于 2009-12-04T22:24:19.203 回答
1

我使用了Steven的方法来加载dll。我更喜欢使用 var 来加载它,这样您就不会在输出结果中看到结果:

 $loadLib = [System.Reflection.Assembly]::LoadFile('path to your dll');
于 2009-12-05T05:13:12.737 回答