2010-02-17 38 views
9

Tôi có "mycomp.myassembly.dll" trong GAC nhưng Load và LoadFrom ném tệp không tìm thấy ngoại lệ và LoadWithPartialName trả về null. Tôi đang làm như sau:C#: Làm thế nào để tải lắp ráp từ GAC?

AssemblyName name = new AssemblyName(); 
    name.Name = "mycomp.myassembly.dll"; 

    Assembly assembly = Assembly.Load(name); 

không thành công với FileNotFound cho file mycomp.myassembly.dll, và

Assembly assembly = Assembly.Load("mycomp.myassembly.dll"); 

thất bại với chính xác cùng một thông điệp.

Tôi đã kiểm tra xem assembly đó có ở GAC hay không và nó hoạt động trong mọi trường hợp khác, tôi không thể tự nạp nó.

Tôi đang làm gì sai ở đây? Tôi có bỏ lỡ điều gì đó không?

+1

Bạn đã cố cung cấp tên lắp ráp không có phần mở rộng ".dll" chưa? Assembly assembly = Assembly.Load ("mycomp.myassembly"); –

+0

Unfortunatelly không giúp được – Artem

Trả lời

19

Bạn đã thử sử dụng tên hội đủ điều kiện chưa? (Ví dụ "ycomp.myassembly.dll, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3")

+0

Điều này đã giúp, cảm ơn bạn! :) – Artem

+0

Báo giá gấp đôi là những người quan trọng. –

1

thử đơn giản loading with the full name

// You must supply a valid fully qualified assembly name.    
     Assembly SampleAssembly = Assembly.Load 
      ("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3"); 

Tôi thường có thể tải mà không cần phiên bản, văn hóa và khóa công khai.

+0

Tôi nghĩ rằng chìa khóa công khai sẽ là cần thiết, không có khóa công khai, nó được coi là một hội đồng hoàn toàn khác. Tất cả các hội đồng trong GAC sẽ có khóa công khai. – erikkallen

+0

bạn nói đúng. tôi đã rắm não và nghĩ đến việc tải các hội đồng địa phương –

Các vấn đề liên quan