2016-03-17 21 views
7

Chúng tôi đang thử nghiệm với nuget cho các dự án studio trực quan của chúng tôi. Tuy nhiên, chúng tôi chỉ (hoặc ít nhất là chủ yếu) sử dụng nuget cho các tham chiếu bên ngoài của chúng ta, và chúng tôi lưu trữ chúng trong một kho lưu trữ cục bộ (chia sẻ mạng). Những gì tôi muốn biết là làm thế nào để xử lý toàn bộ tình trạng gỡ lỗi/phát hành.Gỡ lỗi và phát hành gói nuget Kho lưu trữ cục bộ

Tình huống bê tông (đơn giản):

Chúng tôi có một dự án chính có tham chiếu đến hai thành phần được chia sẻ mà chúng tôi tự phát triển. Các thành phần được chia sẻ này cũng được sử dụng trong các sản phẩm khác của công ty chúng tôi

Khi chúng tôi xây dựng dự án chính trên máy chủ xây dựng (tfs 2015 build tasks), chúng tôi xây dựng các phiên bản gỡ lỗi và phát hành của dự án. Tuy nhiên, chúng tôi chỉ có thể chỉ định một gói nuget duy nhất cho mỗi tham chiếu bên ngoài.

Điều chúng tôi muốn thực hiện để sử dụng phiên bản gỡ lỗi của các thành phần được chia sẻ trong quá trình xây dựng gỡ lỗi và phiên bản phát hành trong quá trình xây dựng bản phát hành. Tuy nhiên, đây là (theo như tôi biết) thực sự gói khác nhau.

Cách khắc phục vấn đề này là gì? Có ví dụ một cách để bao gồm cả các phiên bản phát hành và gỡ lỗi trong một gói nuget duy nhất? Có thể có các cấu hình nuget khác nhau cho các cài đặt cấu hình xây dựng khác nhau không?

Tôi đã tìm thấy Best practices with Nuget: Debug or Release?, tuy nhiên chủ đề này không thực sự giải quyết được vấn đề của tôi. Chủ đề này là một cuộc thảo luận về việc có nên xuất bản gỡ lỗi hoặc phát hành các phiên bản cho một máy chủ từ xa hay không. Chúng tôi muốn xuất bản cả hai và sử dụng cả hai, nhưng chỉ trên một máy chủ cục bộ. Chúng tôi không có ý định chia sẻ thư viện của chúng tôi với phần còn lại của thế giới.

Trả lời

1

Gói NuGet thông thường sẽ chỉ giữ một bộ hội đồng cho một khung mục tiêu cụ thể. Nó không thực sự được thiết kế để gửi một phiên bản gỡ rối và phát hành vì bạn đang xuất bản gói NuGet được người dùng khác sử dụng. Thông thường bạn không xuất bản một bản sửa lỗi và một phiên bản phát hành riêng biệt của ứng dụng của bạn cho người dùng cuối.

Bạn có thể giải quyết vấn đề này bằng cách sử dụng custom MSBuild .targets file trong gói NuGet có tham chiếu và thông tin cấu hình riêng. Bạn có thể sử dụng tệp .targets này làm phần mở rộng cho dự án của mình. Nó sẽ được nhập để bạn có thể xác định các tham chiếu khi bạn cần dựa trên các cấu hình được xác định trong dự án của bạn. Nó không phải là lý tưởng nhưng nó sẽ làm việc.

+0

Điều này không có nghĩa là đối với tình huống của chúng tôi, nuget có thể không phải là cách để đi? Có cách tiếp cận khác ngoài nuget để bao gồm các thành phần được chia sẻ trong dự án của chúng tôi? Làm thế nào để những người khác thực hiện điều này? Tôi chắc rằng chúng tôi không phải là công ty đầu tiên có tình huống này – PaulVrugt

+0

Có, NuGet có thể không phải là một cách tiếp cận tốt cho bạn. Có lẽ chia sẻ mạng của bạn vẫn hoạt động để gỡ lỗi và phát hành các bản dựng, vì vậy có thể không cần phải thay đổi nó. –

+2

Tôi không thực sự hiểu tại sao không có nhiều người có cùng vấn đề. Tôi đã phác họa một tình huống mà tôi tin là rất phổ biến đối với rất nhiều công ty. Làm thế nào để các công ty khác thiết lập máy chủ xây dựng của họ để xây dựng với các thư viện bên ngoài? Ưu điểm của việc sử dụng nuget là nó hoạt động out-of-the-box trong xây dựng nhiệm vụ xây dựng tfs2015, và nó đảm bảo phiên bản của tham chiếu vẫn giữ nguyên cho đến khi được cập nhật theo cách thủ công. Chúng ta mất lợi thế này nếu chúng ta tránh xa nuget. – PaulVrugt

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