14

Tôi đã cố gắng sử dụng ServiceStack trong dự án hiện tại của mình nhưng thấy các tệp nhị phân được phát hành không được đặt tên mạnh vì vậy tôi không thể sử dụng nó ra khỏi hộp. Khi hỏi trên GitHub "tại sao" Tôi có câu trả lời sau đây:Ký mã nhị phân của các dự án nguồn mở

it's virally toxic and hinders binding, upgrading, development, deployment, etc.

mythz rất vắn tắt vì vậy tôi không muốn làm phiền anh nhiều hơn và yêu cầu ở đây. Tôi sử dụng rất nhiều dự án .NET nguồn mở như AutoMapper, NUnit, Moq, log4net, Ninject, v.v. và các bản phát hành của chúng đều được đặt tên mạnh. Tìm thấy similar question ở đây, trên SO, nhưng nó không giúp tôi. Có thực hành bình thường trong PMNM không? Tại sao không phát hành cả hai tệp nhị phân đã ký và chưa ký?

Trả lời

6

Dưới đây là một cuộc thảo luận hiện hành về lý do tại sao đặt tên Mạnh là một ý tưởng tồi cho các dự án mã nguồn mở:

https://groups.google.com/forum/?fromgroups#!topic/getglimpse-dev/pXXazMOOdjE

Đây là một câu chuyện cơn ác mộng từ việc sử dụng nó:

http://haacked.com/archive/2012/02/16/changing-a-strong-name-is-a-major-breaking-change.aspx

tôi đã đích thân ở 2 đội đã trải qua 2 thế hệ của Log4Net đã cố gắng sử dụng các hội đồng tham chiếu 2 phiên bản có tên mạnh khác nhau của Log4Net trong cùng một dự án - Lãng phí rất nhiều thời gian và công sức cố gắng để làm cho công việc này không phải là thú vị, cũng không phải là một cái gì đó chúng tôi có kế hoạch để chủ đề chính mình hoặc uỷ thác tất cả người dùng của chúng tôi quá.

Người dùng muốn có phiên bản có tên mạnh được tự do ký bản sao/ngã ba của riêng mình trong số public ServiceStack repos.

Nếu có nhu cầu, chúng tôi sẽ xem xét việc duy trì các phiên bản thương mại "chính thức được hát" của thư viện của chúng tôi.

+2

Cảm ơn các liên kết, khá thú vị nhưng tôi phải lưu ý rằng ký kết kết hợp và phiên bản kết hợp kẻ - những thứ khác nhau! Mặc dù trong NET thế giới chữ ký là một phần của một tên mạnh mẽ không phải thay đổi phiên bản khi phát hành mới xây dựng (kịch bản phiên bản log4net, thay vào đó họ có thể sử dụng phiên bản tập tin và giữ phiên bản IL cùng). Tôi thấy không có vấn đề phát hành các tệp nhị phân chưa ký, được ký bằng cùng phiên bản IL và được ký với phiên bản IL tăng dần. Có những lựa chọn cho tất cả để được hạnh phúc vì vậy đây là +1 của tôi khi bạn xem xét lại việc duy trì nhị phân "Chính thức ký". – UserControl

+2

Bạn không thể 'ký tự authenicode' hội đồng có phụ thuộc không mạnh tên. Cá nhân, đó là một cơn ác mộng * không * có quyền truy cập dễ dàng vào các hội đồng được đặt tên mạnh và cản trở việc triển khai. – Robin

+3

Tôi nhận ra rằng tôi hơi muộn với bữa tiệc ở đây, nhưng tôi thực sự không thấy vấn đề với việc ký kết các hội đồng. Theo cách nào thì bạn đang ký một vấn đề nếu bạn tiếp tục sử dụng cùng một khóa? Không chuyển hướng lắp ráp giải quyết vấn đề versioning? – dabide

5

Tôi nghĩ là tùy thuộc vào nhà phát triển. Ưu điểm rõ ràng - bất kỳ ai cũng có thể lắp ráp với tên mạnh và sử dụng nó trong bất kỳ môi trường nào. Trong trường hợp cụ thể đó, tôi có nghĩa là từ hội đồng đã ký hoặc chưa ký. Nhược Điểm -?

Tôi nghĩ rằng nó phải là một quy tắc nhẹ nhàng để ký nhị phân.

Jon Skeet đã trả lời tương tự question và ý kiến ​​của anh ấy khá không thể thực hiện được.