2009-12-04 57 views
5

Tôi có một snap-in PowerShell để thao tác cơ sở dữ liệu. Snap-in chính nó chỉ là một wrapper cho thư viện chính được thực hiện trong một DLL riêng biệt. NET tất cả được viết bằng C#.Sử dụng thư viện .NET từ PowerShell

Tôi đã đăng ký cả snap-in và các file DLL thực hiện với GAC sử dụng installutil.exe

Trong khi snap-in hoạt động tốt trong PowerShell, tôi cần để có thể truy cập vào các chi tiết thực hiện DLL cho những thứ như enums và những thứ tương tự để chuyển qua như các đối số cho các lệnh ghép ngắn.

Thật không may, tôi không thể truy cập nội dung của các lớp bên trong PowerShell mặc dù các lớp được đánh dấu là công khai và mọi thứ tôi đang cố truy cập cũng được đánh dấu là công khai.

Tôi có phải làm điều gì đó đặc biệt để triển khai DLL để làm cho nó hiển thị bên trong PowerShell không?

Trả lời

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

Kindness,

Dan

2

Thêm-Type sẽ làm việc cho PowerShell V2 như mô tả của Daniel.

Bạn cũng có thể sử dụng phản ánh trong cả V1 và V2 -

[System.Reflection.Assembly]::LoadFile('path to your dll') 
1

tôi đã sử dụng phương pháp của Steven để tải dll. Tôi thích sử dụng một var để tải nó để bạn sẽ không thấy kết quả trong kết quả đầu ra:

$loadLib = [System.Reflection.Assembly]::LoadFile('path to your dll'); 
Các vấn đề liên quan