2014-12-12 11 views
6

Chúng tôi muốn chia sẻ .DotSettings giữa một số giải pháp. Mục tiêu là có mộtCodeStyle.DotSettings mà chúng tôi tham chiếu dưới dạng một lớp trong tất cả X.sln.Dotsettings của chúng tôi. Tuy nhiên, tôi thấy hành vi không mong muốn khi tôi thêm lớp.Cách sử dụng đường dẫn tương đối trong các lớp ReSharper DotSettings

Tôi chuyển đến "Manage Options", nhấp chuột phải "Solution X team-shared" -> "Add Layer" -> "Open Settings File", chọn CodeStyle.DotSettings và nhấp "Open".

sau đó tôi kiểm tra X.sln.DotSettings, và thấy hai tài liệu tham khảo, một sử dụng một đường dẫn tuyệt đối, và một sử dụng một người họ hàng:

<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/AbsolutePath/@EntryValue">C:\path\to\my\repo\CodeStyle.DotSettings</s:String> <s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=3BE2D8150433584697322AAD3C173856/RelativePath/@EntryValue">..\CodeStyle.DotSettings</s:String>

Kiểm tra trong một đường dẫn tuyệt đối đến kho lưu trữ địa phương của tôi chẳng có ý nghĩa, vì vậy tôi cố gắng xóa dòng đó khỏi X.DotSettings, nhưng sau đó nó không còn hiển thị trong hộp thoại "Cài đặt Lớp". Đường dẫn tương đối dường như đáng ngờ với các dấu chấm hàng đầu của nó, vì vậy tôi cố gắng xóa ..\ khỏi nó, nhưng nó vẫn không hiển thị trong "Lớp cài đặt".

Tôi đang làm gì sai?

Chúng tôi đang sử dụng ReSharper 8.2.3

Trả lời

9

Xem vấn đề tương ứng trong tracker JetBrains': RSRP-339002.

Không xóa bất kỳ thứ gì: ReSharper cố gắng tải tệp từ cả hai đường dẫn, vì vậy bạn nên ổn. Tôi đã sử dụng một thiết lập tương tự (một chia sẻ và phiên bản DotSettings giữa nhiều giải pháp) trong hai năm qua mà không có vấn đề.

Bạn không thể xóa đường dẫn tuyệt đối: nó được sử dụng làm khóa. Bạn vẫn có thể bỏ phiếu cho vấn đề này. Cá nhân tôi không thích có đường dẫn tuyệt đối trong tệp được kiểm soát nguồn, ngay cả khi nó không gây hại trong trường hợp này.

Liên quan đến hàng đầu thêm ..\, tôi quan sát hành vi tương tự. Tôi không biết tại sao; có thể đường dẫn liên quan đến thư mục bộ nhớ cache thay vì thư mục giải pháp? Dù sao, nó chắc chắn là cần thiết.

+0

Đồng ý, điều này là khó hiểu. Tôi đã bình luận và bỏ phiếu cho vấn đề này ngay bây giờ. – knatten

6

R # giữ cả hai đường dẫn tuyệt đối và tương đối để phù hợp với tất cả các trường hợp sử dụng các lớp tệp được chèn. Đường dẫn tương đối hoạt động đối với các giải pháp lưu trữ được kiểm soát nguồn với tệp lớp được tiêm cũng được kiểm tra trong cùng một điều khiển nguồn. Đường dẫn tuyệt đối hoạt động để tiêm tệp từ tài nguyên bên ngoài, như đường dẫn chung trên máy hoặc chia sẻ mạng trong trường hợp giải pháp được kiểm soát nguồn.

Đường dẫn tuyệt đối hiện là bắt buộc. Chủ yếu vì lý do lịch sử. Điều này có thể được thay đổi thành "yêu cầu một trong hai".

Đường dẫn tương đối liên quan đến tệp đĩa của lớp máy chủ mà nó được tiêm vào đó. Trong trường hợp của bạn, đó là tệp .sln.DotSettings. Tại sao, nó nên có được thư mục của nó thay vào đó, nhưng tôi bị mất điều .Parent khi thực hiện nó! Và nó đã không xuất hiện trong quá trình thử nghiệm hoặc chương trình beta. Giống như, nó hoạt động cho các đường dẫn tương đối, và không ai bận tâm đếm số lượng gấp đôi cho đến bây giờ% -)

+0

Đường dẫn UPD abs sẽ không còn bắt buộc nữa, bản phát hành tiếp theo (wave02) sẽ hỗ trợ các lớp được chèn vào đường dẫn rel-path. – hypersw

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