2011-12-05 35 views
8

Tôi có một giải pháp C# có chứa nhiều thư viện lớp C#. Tôi đang thực hiện một số nghiên cứu gần đây và đề xuất rằng các hội đồng đầu ra từ các thư viện của tôi nên được ký kết, làm cho chúng được ký kết với một tên mạnh. Thứ nhất, tôi tự hỏi liệu tốt nhất là tôi tiến bộ như thế? Các thư viện được xuất ra từ các thư viện lớp này được sử dụng trong nhiều dự án khác.lợi ích của việc ký dll với tên mạnh

Nếu được thông báo từ câu hỏi trước của tôi rằng tôi nên ký tên vào dll của tôi, .snk I use, điều này có thể được sử dụng cho mỗi thư viện lớp trong giải pháp không? Hoặc nó phải là một chìa khóa cho mỗi thư viện lớp học?

+1

Đối với câu hỏi đầu tiên của bạn, hãy xem http://stackoverflow.com/questions/1197133/anything-wrong-with-not-signing-a-net-assembly và http://stackoverflow.com/questions/721340/strong -bộ phận lắp ráp – Otiel

Trả lời

3

Đôi khi việc ký một hội đồng là một yêu cầu. Điều này đúng nếu bạn muốn GAC lắp ráp của bạn, hoặc nếu một hội đồng đã ký muốn tham khảo một hội đồng khác.

Bạn có thể sử dụng lại cùng một tệp .snk và làm như vậy sẽ dẫn đến Mã khóa công khai giống nhau cho tất cả các hội đồng.

1

Điều cần thiết là nếu bạn định lắp ráp trong GAC để sử dụng bởi một số lượng lớn các hội đồng. Nó có lợi nếu bạn định cung cấp cho người dùng sử dụng thay vì tự cài đặt, vì nó cung cấp một mức độ đảm bảo rằng nó thực sự là tệp mà bạn cho biết, thay vì bị giả mạo. Bạn có thể sử dụng ít (có lẽ chỉ một) tệp SNK trên mỗi thực thể (cá nhân, tập thể, nhóm nguồn mở hoặc công ty) bởi vì nếu ai đó tin tưởng bạn (cho dù "bạn" có nghĩa là cá nhân, công ty, v.v.) và do đó, họ tin tưởng một khóa công khai mà họ chắc chắn là của bạn, sau đó họ sẽ tin tưởng nó vào lần sau. Bạn sẽ không muốn ký séc với một chữ ký viết tay khác nhau mỗi lần, phải không?

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