2008-10-10 30 views
25

Trong dự án của tôi, tôi có một lớp được thừa hưởng bởi nhiều lớp khác. Chúng tôi sẽ gọi nó là ClassBase.Làm thế nào để giải quyết không chính xác "tham khảo mơ hồ" từ ReSharper trên thừa kế lớp?

public class ClassInheritFromBase : ClassBase 

Khi ClassBase đang được thừa hưởng, ReSharper ném một "tài liệu tham khảo mơ hồ" cảnh báo trên ClassBase, và bất cứ điều gì bên trong lớp mới mà thừa hưởng từ ClassBase không có IntelliSense và được cảnh báo rằng nó không thể tìm thấy nó.

Dự án biên dịch và chạy tốt.

Nếu tôi thay đổi không gian tên ClassBase là trong và sau đó thay đổi các lớp kế thừa, họ tìm thấy nó tốt và ReSharper không có vấn đề, IntelliSense hoạt động ... cho đến khi nó được biên dịch. Sau khi biên dịch nó trở lại để có các cảnh báo tham chiếu mơ hồ và mọi thứ khác.

Điều này đã được nhìn thấy trước đây và nó có thể được sửa chữa như thế nào? Tôi đã nhìn thấy một mục trong theo dõi lỗi JetBrains cho một vấn đề như thế này, nhưng họ đóng nó như là không thể tái sản xuất.

+0

Bạn có thể tạo giải pháp mẫu thể hiện hành vi mà bạn mô tả không? –

Trả lời

2

Đây là lỗi trong ReSharper 4.1 và được sửa trong một trong các bản dựng sau này.

Tải xuống bản dựng đêm cuối cùng tại http://www.jetbrains.net/confluence/display/ReSharper/ReSharper+4.0+Nightly+Builds.

+9

Vẫn còn xảy ra trong ReSharper 8.2, vì vậy có lẽ có nhiều việc phải làm với các giải thích khác được đề xuất ... –

+3

Trong ReSharper 8.2, Đặt Copy Local thành False, sau đó thành True cho tham chiếu vi phạm. Trong trường hợp của tôi nó là System.Web.Http. –

+0

Vẫn xảy ra .. –

3

Tôi đã thấy lỗi này trong ReSharper 4.1. Nó xảy ra khi lớp cơ sở nằm trong thư mục App_Code. Tôi không biết cách sửa nó; nó rất khó chịu, nhưng mã vẫn biên dịch.

0

Tôi gặp phải vấn đề tương tự. Vấn đề tôi gặp phải là do nhà cung cấp xây dựng tùy chỉnh (từ thư viện nguồn mở mà tôi đang sử dụng gọi là PageMethods) và thực tế tất cả các trang .aspx của tôi kế thừa từ lớp BasePage nằm trong thư mục App_Code.

Tôi không thể xây dựng ReSharper để làm việc với dự án của mình (4.1.933, 4.1.943 (mới nhất) hoặc 4.5). Bản sửa lỗi trong bản dựng lại mới nhất của ReSharper khắc phục sự cố "Tham chiếu mơ hồ", nhưng phá vỡ nhà cung cấp xây dựng tùy chỉnh.

Cách duy nhất tôi có thể nhận được cả nhà cung cấp xây dựng và lớp cơ sở để làm việc với ReSharper là đặt Lớp cơ sở vào một thư viện lớp riêng biệt.

Sau đây là các lỗi Jira đăng nhập mà dường như liên quan đến vấn đề này:

0

tôi đã trải qua cùng một vấn đề với sự tham khảo đến các lớp học C# trong AppCode thư mục.

Tôi đã giải quyết vấn đề này bằng cách nâng cấp ReSharper lên phiên bản 4.5 (từ phiên bản 4.1).

Đó là một nâng cấp rất đơn giản, tôi chỉ cần tải phiên bản mới nhất từ ​​trang web JetBrains (http://www.jetbrains.com/resharper/download/) và chạy nó.

Tôi không phải gỡ cài đặt phiên bản trước (v4.1). Tôi không phải nhập lại khóa cấp phép hiện tại của mình.

Tất cả các tham chiếu hiện được nhận dạng chính xác và tôi có thể điều hướng đến các lớp như mong đợi.

1

ReSharper -> Tùy chọn -> Chung: Nhấp vào nút # Xóa bộ nhớ cache #.

+1

Xóa bộ nhớ cache có vẻ đáng để thực hiện một lần trong một thời gian nhưng không giúp ích gì trong trường hợp này. –

14

Đối với những người vẫn còn có vấn đề với điều này, (tôi vẫn nhận được nó theo thời gian) đây là các bước tôi đã làm để thoát khỏi cảnh báo tham chiếu mơ hồ trong ReSharper.

  1. Trước tiên tôi đi đến tất cả các thư viện lớp của tôi và chắc chắn rằng tất cả các tài liệu tham khảo để thư viện lớp khác của tôi có Copy địa phương sở hữu thiết lập là false.
  2. Trong dự án nơi tôi thực sự nhận được cảnh báo tham chiếu mơ hồ, tôi đã vào danh mục bin của mình và xóa tất cả các tệp .dll và .pdb cho tất cả các thư viện có dự án riêng của họ.
  3. Sau bản dựng mới hoặc trong trường hợp "cập nhật cập nhật" của tôi trên các tệp .dll trong VS, lỗi từ Resharper đã biến mất.

Tôi đang sử dụng Resharper 5.1 trong Visual Studio 2008 với chỉ một tham chiếu tới các file dll Tôi đang sử dụng đó là lý do tôi đã phải "cập nhật tài liệu tham khảo"

+3

Năm 2013 và tôi vẫn thỉnh thoảng gặp phải vấn đề này. Các bước trên làm việc để giải quyết nó cho tôi mặc dù. –

+0

2013 Resharper 6 và vấn đề tiếp tục nhưng tôi có thể giải quyết nó trong bảng lỗi trong giải pháp và nhấp vào bất kỳ lỗi nào trong trang .aspx. Bằng cách nào đó, kỳ diệu, bằng cách nhấp vào nó, Resharper con số ra rằng đây là một vấn đề tưởng tượng và "lỗi" biến mất – kevinsky

+8

Tôi đã nói dối. Vấn đề là trở lại với một sự trả thù ... 4009 lỗi trong 229 tập tin. Chuyện này thật vớ vẩn! VS2013, Resharper 8.0.2. –

1

Đối với tôi đó là một vấn đề của tôi không sử dụng thư mục giải pháp cho cache. Thay đổi nó từ vị trí TEMP thành giải pháp đã giải quyết được vấn đề của tôi.

0

tôi đã cùng một vấn đề với ReSharper 5.1 và giải quyết nó bằng cách khởi động Visual Studio 2010.

1

Tôi đã xóa thư mục _ReSharper.SolutionName tìm thấy trong thư mục gốc của dung dịch và khởi động lại của tôi.

Tôi đã sử dụng Visual Studio     2010 với ReSharper 5.1 ... Xoá bộ nhớ cache KHÔNG giúp đỡ (ReSharper -> Menu Tùy chọn ->chung -> #Clear bộ nhớ cache #).

5

Tôi đang sử dụng VS 2012 và ReSharper 7 và đôi khi tôi tìm thấy hành vi tương tự. Đây là những bước mà làm việc cho tôi:

  1. Giải pháp sạch
  2. Đóng Visual Studio
  3. Chuyển đến thư mục gốc của giải pháp của bạn và tìm thấy một thư mục có tên _ReSharper [Tên của giải pháp của bạn] và xóa nó. .
  4. Quay lại Visual Studio, mở giải pháp của bạn thư mục được tạo lại và không còn lỗi "tham chiếu mơ hồ" sau đó.
+0

Resharper 8.1 .. vẫn gặp sự cố đó, nhưng điều đó đã giúp. – Vladimirs

+0

Trong trường hợp của tôi, bộ nhớ đệm nằm trong thư mục cài đặt người dùng (cục bộ, không chuyển vùng trong trường hợp tên miền):% appdata% \ JetBrains \ ReSharper \ v7.1 \ SolutionCaches – ranieuwe

0

Sử dụng VS 2013 Premium & Chia sẻ lại 8.1 và gặp sự cố này trên dự án ASP.Net.

Các giải pháp mà làm việc cho tôi:

  1. Thực hiện giải pháp sạch.
  2. Tài liệu tham khảo mở cho dự án vi phạm
  3. Trên mỗi tham chiếu tham chiếu đến một dự án khác trong giải pháp, hãy đặt Copy Local = false.
  4. Thử giải pháp xây dựng lại. Bạn có thể sẽ gặp lỗi tham chiếu chưa được giải quyết - điều đó là bình thường.
  5. Đặt mỗi tài liệu tham khảo về Copy Local = true (nếu phù hợp)
1

Bạn thực sự có thể có một tài liệu tham khảo mơ hồ. Trong dự án nơi xảy ra lỗi tham chiếu mơ hồ, hãy đảm bảo kiểm tra tham chiếu dự án của bạn. Bạn có thể có cùng một tham chiếu hai lần nhưng phạm vi thông qua các không gian tên khác nhau. Trong trường hợp của tôi có hai, nhưng với các đường dẫn khác nhau (ví dụ):

XXX.YYY.ZZZ.myassembly 
ZZZ.myassembly 

Đảm bảo bạn không có loại điều này trong tài liệu tham khảo của mình.

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