Làm thế nào để chia sẻ các cài đặt Resharper giống nhau giữa nhiều giải pháp mà không cần can thiệp thủ công?


79

Các dự án của chúng tôi được tổ chức theo một giải pháp tổng thể (chứa mọi dự án) và nhiều giải pháp nhỏ hơn chứa các nhóm dự án liên quan.

Tôi muốn chia sẻ các cài đặt Resharper giống nhau trên mọi giải pháp, đảm bảo rằng các nhà phát triển không cần nhập các tệp cấu hình trong Resharper hoặc làm bất cứ điều gì theo cách thủ công cho vấn đề đó. Phiên bản chúng tôi đang sử dụng là một trong những phiên bản mới nhất, 7.0.1. Tệp DotSettings đã đăng ký trong TFS hoạt động tốt trên một giải pháp duy nhất, nhưng sao chép cùng một tệp cho 20-30 giải pháp là điều không nên.

Có cách nào để chia sẻ cùng một cấu hình với mọi dự án / giải pháp trong toàn nhóm mà không cần các nhà phát triển phải định cấu hình rõ ràng không? Lý tưởng nhất là có thể thay đổi đường dẫn đến tệp .DotSettings cho từng giải pháp để khi một tệp .DotSettings được chỉnh sửa, nó sẽ tự động ảnh hưởng đến mọi giải pháp trong nhóm.

Cập nhật:

Tôi đã tìm kiếm một chút về điều này và thử 2 phương pháp khác nhau, nhưng không có phương pháp nào hoạt động 100%:

  • Các liên kết cứng sử dụng công cụ mklink hoạt động cục bộ hoàn hảo, nhưng TFS không hỗ trợ chúng
  • Các phím tắt bình thường cũng sẽ là một giải pháp hợp lý cho điều này, nhưng Resharper không đọc chúng

Tôi hết lựa chọn ở đây.

Cập nhật 2:

Giải pháp do Daniel Hilgarth đề xuất hoạt động hoàn hảo, nhưng chỉ khi Resharper được cập nhật. Một lỗi khiến các tệp .DotSettings được tự động kiểm tra và chỉnh sửa trên mọi máy đã được sửa trên bản phát hành 7.1. Tôi đã thử nghiệm điều này trước và sau khi cập nhật phần mềm và hiện nó hoạt động như tôi mong đợi.

Thông tin thêm về lỗi có thể được tìm thấy tại đây:

http://youtrack.jetbrains.com/issue/RSRP-288235


Bạn đang sử dụng phiên bản ReSharper nào?
Daniel Hilgarth

Tôi đang sử dụng phiên bản 7.0.1 của công cụ này. Sẽ cập nhật câu hỏi để phản ánh điều đó.
julealgon

Phiên bản 10 vẫn không cung cấp bất kỳ giải pháp cụ thể nào cho việc này. Ví dụ, tôi muốn xem nó như một lớp hoàn toàn riêng biệt.
MarioDS

Câu trả lời:


77

Resharper hỗ trợ phân lớp tùy chọn.

Bạn sẽ sử dụng nó như thế này:

  1. Có một tệp DotSettings với tất cả các cài đặt của bạn trong đó.
  2. Đối với mỗi giải pháp, hãy thực hiện các bước sau:
    1. ReSharper -> Quản lý các tùy chọn
    2. Nhấp chuột phải vào "Giải pháp 'Giải pháp của Bạn' do nhóm chia sẻ"
    3. Chọn Thêm lớp -> Mở tệp cài đặt
    4. Chọn tệp DotSettings trung tâm

Điều này sẽ tạo một tệp DotSettings cho mỗi giải pháp. Bạn cần kiểm tra những điều này vào TFS cùng với tệp DotSettings trung tâm.
Quan trọng: Tệp DotSettings của các giải pháp chỉ chứa một liên kết đến trung tâm, chúng không sao chép các cài đặt.


1
Nó hoạt động nhưng cài đặt "Giải pháp" Giải pháp của bạn "cá nhân" ghi đè lên lớp được nhóm chia sẻ. Vì vậy, tôi cũng phải lặp lại 2-4 cho cài đặt cá nhân. Bây giờ tôi đang trả lời xem tôi có cần thêm tệp sln.DotSettings.user của mình vào kiểm soát nguồn hay thêm một bước nữa vào quy trình cấu hình môi trường phát triển cục bộ hay không.
Sasha

1
@alexander: Trên thực tế, đó là một vấn đề thực sự và JetBrains đang làm việc trên nó: youtrack.jetbrains.com/issue/RSRP-333945
Daniel Hilgarth

Về tuyên bố "Tập tin DotSettings của các giải pháp chỉ chứa một liên kết đến trung tâm" ... điều này có đúng không? Tôi đã làm theo quy trình ở trên nhưng tôi đã kết thúc với hai tệp DotSettings (trung tâm và giải pháp) chứa đầy cài đặt. Điều đó có thể ổn ... Tôi chỉ muốn đảm bảo rằng tôi đang làm đúng.
Jason Capriotti

1
Tôi đã xóa cài đặt giải pháp và liên kết đến giải pháp trung tâm và thử lại. Nó đã hoạt động như mong đợi. Tôi có thể đã có một tệp cài đặt giải pháp chứa tất cả các cài đặt.
Jason Capriotti

21

Câu hỏi đã cũ, nhưng nếu ai đó vẫn đang tìm cách chia sẻ cài đặt nhóm:

Tất cả các cài đặt cho R # có thể được xuất và đóng gói dưới dạng gói NuGet và được phân phối dưới dạng tiện ích mở rộng ReSharper thông thường.

Điều này mang lại cho bạn sự linh hoạt: bạn có thể chia sẻ các cài đặt khác nhau cho các nhóm khác nhau, ReSharper sẽ đảm nhận việc phát hiện phiên bản mới và thông báo cho nhà phát triển. Về cơ bản, tất cả những lợi ích mà bạn có thể nhận được khi sử dụng NuGet.


1
Điều đó thực sự rất tốt. Tôi đã nghĩ đến việc tạo gói NuGet nội bộ của riêng mình để thực hiện chính xác loại việc đó, nhưng tôi đang nghĩ đến việc làm thủ công (cài đặt nó như một gói NuGet bình thường ở cấp giải pháp và sau đó chỉnh sửa đường dẫn tương đối của các tham chiếu để làm cho ReSharper tiêu thụ nó). Tôi không biết các tiện ích mở rộng của ReSharper cũng sử dụng NuGet. Rất rất hữu ích.
julealgon

2

Trong Resharper 2015

Đi tới Resharper-> Options-> Manage(pic 1) -> Options-> Import and Export(pic 2) ->from file....

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Và nếu bạn biết những gì để import nó cho nhóm của bạn bạn có thể để Solution settingssau đó thay vì Import and ExportOptionsđi đến Copy Settings to-> team-shared.

nhập mô tả hình ảnh ở đây

Hy vọng điều này giúp bạn tiết kiệm thời gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.