2010-11-22 25 views
10

Tôi hiểu ý tưởng cơ bản đằng sau việc ký kết các hội đồng nhưng có vấn đề khi sử dụng các tệp DLL của Telerik hoặc 2 bên. Tôi có một .exe sử dụng 2 của riêng tôi. DLL, DLLs lần lượt sử dụng các thư viện DLL doanh nghiệp và các DLL Telerik.ký hợp đồng với một tên mạnh, ok, nhưng nếu một số bên thứ ba DLL không được ký kết?

Tôi đã cung cấp cho tất cả các dự án của mình một tên mạnh .snk, nhưng khi biên dịch trình biên dịch giải thích rằng thư viện DLL doanh nghiệp, chẳng hạn, không được ký, điều này có ý nghĩa.

Tôi không muốn tắt xác minh bằng lệnh te sn.exe -Vr hoặc thậm chí trì hoãn ký dự án của tôi. Nhưng sau đó làm thế nào là điều này sẽ làm việc? Tôi biết ơn vì bất kỳ sự thấu hiểu nào.

Trả lời

4

Thật bất tiện, nhưng không phải khoa học tên lửa ký/từ chức hội đồng của bên thứ ba. Giả sử bạn muốn đăng một dll unsigned như System.ComponentModel.Composition.dll với phím default.snk:

mở command prompt VS và cd vào thư mục của bạn với các dll unsigned (s)

 
ildasm /all /out=System.ComponentModel.Composition.il System.ComponentModel.Composition.dll 
ilasm /dll /key=default.snk System.ComponentModel.Composition.il 
del System.ComponentModel.Composition.il 

Trong mỗi dự án VS áp dụng, hãy loại bỏ và thêm lại tham chiếu vào trang Assembly.ComponentModel.Composition.dll đã được ký của bạn

+0

Việc ký kết lắp ráp được cài đặt thông qua gói nuget được khuyến nghị? – Vivekh

+0

Đừng quên '/ resource = somename.res' nếu tệp' .res' được tạo bởi 'ildasm' – n0rd

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