Hiện tại, tôi đóng gói các bản dựng phát hành với Nuget cho các bản dựng chính thức cho nuget.org, nhưng tôi đóng gói các bản dựng gỡ lỗi bằng Nuget cho các lần đẩy mã nguồn tới Symbolource.org.
CHỈNH SỬA: (Jon Skeet, với một số thiên vị từ việc phát triển Noda Time)
NuGet hiện hỗ trợ đẩy lên cả thư viện NuGet và Symbolource.org (hoặc các máy chủ tương tự), như được ghi lại . Thật không may, có hai yêu cầu trái ngược nhau ở đây:
- Khi chỉ sử dụng một thư viện mà không cần gỡ lỗi, bạn thực sự muốn có một bản phát hành. Rốt cuộc, đó là những gì mà các bản dựng phát hành dành cho.
- Khi gỡ lỗi vào thư viện cho mục đích chẩn đoán, bạn thực sự muốn có một bản dựng gỡ lỗi với tất cả các tối ưu hóa thích hợp bị tắt. Rốt cuộc, đó là những gì các bản dựng gỡ lỗi dành cho.
Điều đó sẽ ổn thôi, nhưng NuGet không (theo như tôi có thể nói) cho phép cả bản phát hành và bản gỡ lỗi được xuất bản theo cách hữu ích, trong cùng một gói.
Vì vậy, các lựa chọn là:
- Phân phối các bản dựng gỡ lỗi cho mọi người (như được hiển thị trong ví dụ trong tài liệu) và hoạt động với bất kỳ lần truy cập kích thước và hiệu suất nào.
- Phân phối các bản dựng phát hành cho mọi người và sống với trải nghiệm gỡ lỗi đôi chút.
- Thực hiện một chính sách phân phối thực sự phức tạp, có khả năng cung cấp các gói phát hành và gỡ lỗi riêng biệt.
Hai điều đầu tiên thực sự hiểu rõ về ảnh hưởng của sự khác biệt giữa bản dựng gỡ lỗi và bản phát hành ... mặc dù cần lưu ý rằng cũng có sự khác biệt lớn giữa việc muốn bước vào mã của thư viện vì bạn muốn kiểm tra một số hành vi và muốn để gỡ lỗi mã của thư viện vì bạn tin rằng mình đã tìm thấy lỗi. Trong trường hợp thứ hai, có lẽ tốt hơn là lấy mã của thư viện dưới dạng giải pháp Visual Studio và gỡ lỗi theo cách đó, vì vậy tôi không phải chú ý quá nhiều đến tình huống đó.
Sự cám dỗ của tôi là chỉ tiếp tục với các bản dựng phát hành, với kỳ vọng rằng tương đối ít người sẽ cần gỡ lỗi và những người không bị ảnh hưởng nhiều bởi các tối ưu hóa trong bản phát hành. (Dù sao thì trình biên dịch JIT cũng thực hiện hầu hết việc tối ưu hóa.)
Vì vậy, có những lựa chọn khác mà chúng tôi đã không xem xét? Có những cân nhắc nào khác để đưa ra số dư không? Việc đẩy các gói NuGet sang SymbolSource có đủ mới mà "phương pháp hay nhất" thực sự chưa được thiết lập không?
nuget pack ... -Symbol
và đẩy các gói đã tạo ...