2012-04-13 37 views
8

Tôi nhận được lỗi này "không thể tải loại 'System.Runtime.CompilerServices.ExtensionAttribute' từ lắp ráp 'mscorlib, Phiên bản = 4.0.0.0, Văn hóa = trung lập, PublicKeyToken = b77a5c561934e089' . "lắp ráp đâm asp.net của tôi 4.0

bất cứ khi nào tôi bao gồm dll của quartz.net trong thư mục bin của trang web của tôi và tham chiếu mã đó trong mã. Tôi chắc chắn rằng nó đã làm với khuôn khổ .net sai.

trang web asp.net của tôi đang sử dụng mục tiêu khuôn khổ 4.0 tôi đang sử dụng các .net 4 file quartz.net

và IIS ứng dụng hồ bơi của tôi (hồ bơi cổ điển .net) được thiết lập để chạy .net 4.0 frework.

Tôi không chắc chắn bắt đầu từ đâu nhưng những gì tôi biết chắc chắn là loại bỏ thạch anh và tôi đang tìm tốt một lần nữa (trừ lịch)

Trả lời

5

Đây là vấn đề được giới thiệu trong phiên bản cuối cùng vì Quartz.Net được biên dịch dựa trên khung 4.5. Hãy xem this thread nơi sự cố đã được báo cáo. Một phiên bản cố định của dll có sẵn.

1

Các bạn đã thử thêm các tài liệu tham khảo để mscorlib lắp ráp và thiết Copy địa phương để đúng?

Reading here:

Vấn đề này đã làm với cách ILMerge.exe được chạy. Loại chuyển tiếp (trong trường hợp này của loại ExtensionAttribute) được coi là không vi phạm thay đổi, theo nghĩa là minh bạch, trong các trường hợp được hỗ trợ , với thời gian chạy, cũng như trình biên dịch của chúng tôi. Trình biên dịch hoặc các công cụ giống như trình biên dịch (mà ILMerge là một trong số) được mong đợi hỗ trợ chuyển tiếp loại , giống như chúng được mong đợi hỗ trợ các tính năng khác của thời gian chạy. Hơn nữa, cách hỗ trợ chạy các trình biên dịch là bằng cách tham chiếu rõ ràng và hoàn toàn các bộ tham chiếu của gói Multi-Targetting thích hợp.

6

ExtensionAttribute cần có lớp để sử dụng các phương pháp mở rộng trong C#. Trong .NET Framework 4.0, lớp này được lắp ráp trong System.Core.dll, nhưng trong lớp .NET Framework 4.5 đã được chuyển tới mscorlib.dll. Tôi đoán rằng vấn đề là, Quartz.dll (hoặc một số lắp ráp khác) đã được biên dịch trên máy tính với .NET Framework 4.5 cài đặt như vậy, mong đợi ExtensionAttribute trong mscorlib.dll, mà không có trên máy tính chỉ với .NET Framework 4.0.

Tôi tin rằng biên dịch lại Quartz trên máy tính mà không cần .NET Framework 4.5 sẽ giải quyết được vấn đề. Ngoài ra cài đặt NET Framework 4.5 trên máy chủ với IIS sẽ giúp đỡ, nhưng tôi sẽ không khuyên bạn nên nó vì nó vẫn là phiên bản beta.

+0

Hoặc, đảm bảo các hội đồng tham chiếu được cài đặt trên máy chủ xây dựng đang xây dựng các DLL bị lỗi, http://marcgravell.blogspot.co.nz/2012/09/iterator-blocks-missing-methods-and-net. html – Myster

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