Bạn có thể sử dụng siêu dữ liệu trong Visual Studio chỉ mang đến siêu dữ liệu


132

Tôi đang làm việc trong một Dự án Web trong Visual Studio 2008. Khi tôi nhấn F12 (hoặc nhấp chuột phải và chọn Chuyển đến Định nghĩa) Visual Studio sẽ liên tục chuyển đến tệp Siêu dữ liệu thay vì đi đến nguồn.

Một số điểm:

  • Tất cả các mã nguồn là C #, không có VB.Net
  • Tất cả các dự án là trong cùng một giải pháp
  • Mọi thứ đều là tham chiếu dự án trái ngược với tham chiếu tệp (được kiểm tra và kiểm tra hai lần)
  • Tôi đã thử cách tiếp cận Clean / Rebuild Solution (thậm chí đến mức xóa thư mục Temp, thư mục Tệp tạm thời, v.v.).

Có ai khác nhìn thấy hành vi này và / hoặc biết cách khắc phục nó?


Tôi chỉ gặp vấn đề này trong các giải pháp hỗn hợp với vb.net và c # trong các dự án được tham chiếu khác nhau. Lạ: /
Bayard Randel


Đối với tôi, việc khởi động lại Visual Studio đã khắc phục sự cố này (trên dự án .net Core trong một giải pháp đa dự án).
niico

Câu trả lời:


59

Vâng, một nhà phát triển khác đã tìm thấy câu trả lời. Dự án cụ thể mà chúng tôi gặp sự cố ban đầu được thêm dưới dạng tham chiếu tệp, sau đó xóa và thêm vào dưới dạng Tham chiếu dự án. Tuy nhiên, Visual Studio giữ cả hai trong tệp csproj cho trang web, gây ra sự cố. Anh ấy đã đi vào và chỉnh sửa thủ công tệp csproj để xóa tham chiếu tệp cho dự án có vấn đề và bây giờ tất cả đã được sửa


Đây là thông tin tuyệt vời để có. Tôi tò mò muốn biết liệu các bạn đã cài đặt SP1 chưa?
NotMe

tốt, nếu tôi có thể tìm thấy thông tin đó ở bất cứ đâu trên web tôi sẽ nói với bạn. Tôi đang chạy VS 2008 9.0.21022.8 RTM, nhưng tôi sẽ bị nguyền rủa nếu tôi có thể tìm thấy bất cứ nơi nào nếu nó tương ứng với VS 2008 SP1 hoặc bản gốc
pfunk

Tuyệt vời, cảm ơn - điều này giúp tôi. Nó phải là ProjectReference trong tệp csproj nếu mở nó bằng trình soạn thảo text / xml. Bất kỳ khác nên được loại bỏ.
Victor Gelmutdinov

3
Điều này cũng có thể xảy ra nếu GUID trong ProjectReference không khớp với giá trị ProjectGuid trong dự án được tham chiếu
David Gardiner

Cảm ơn! Các vấn đề thuộc loại này vẫn còn tồn tại trong MSVS
Alex

42

Nó xảy ra khi bạn không thêm tham chiếu như một dự án mà chỉ vào một dll hoặc exe bằng cách sử dụng tab Duyệt trong hộp thoại Thêm tham chiếu. Nếu bạn thêm tham chiếu bằng tab Dự án, bạn nên truy cập trực tiếp vào mã nguồn khi bạn chọn Chuyển đến Định nghĩa.

Tuy nhiên, nếu bạn cài đặt ReSharper , bạn sẽ truy cập mã nguồn ngay cả khi bạn đã thêm tham chiếu của mình vào dll / exe bằng tab Duyệt.


39

Có vẻ như nó cũng cần được thiết lập trong Resharper. Visual Studio của tôi không điều hướng đến mã nguồn .NET Framework cho đến khi tôi kích hoạt nó trong Resharper.

Chia sẻ lại cài đặt để cho phép điều hướng đến nguồn bên ngoài


1
Xin chào, nó làm việc cho tôi. Nó đã giải quyết vấn đề đó. Sử dụng VS2015 Update 3, ReSharper 2016.1.2
Michal

25

1. đóng giải pháp của bạn.

2. xóa <name of the solution>tệp .suo ẩn trong thư mục nơi tệp .sln của giải pháp của bạn <name of the solution>tồn tại.

3. mở giải pháp của bạn.

4. xây dựng lại giải pháp của bạn.


7
Đây là lựa chọn phù hợp với tôi. Tuy nhiên, tôi đang sử dụng VS2019 RC (16.0.0) và phải xóa tệp .sou tại .vs \ {ProjectName} \ v16
Nick DeVore

1
Làm sạch nó cho tôi, quá. Sử dụng VS2017, các tệp .sou ở nhiều vị trí - ".vs \ <ProjectName> \ v15", giống như Nick lưu ý tệp VS2019 .sou nằm trong thư mục con V16. Lưu ý rằng tôi cũng đã có một thư mục con "... V14", rõ ràng từ một VS2015 trước đó mà tôi đã sử dụng trên cùng một Giải pháp trước khi nâng cấp lên 2017. Đã làm sạch cả hai và mọi vấn đề đều biến mất.
BRebey

1
* .suo không .sou là phần mở rộng tập tin thực tế
Mike Cheel

1
Tương tự trong Visual Studio 2019. Đóng giải pháp, mở giải pháp trong trình duyệt tệp, tìm kiếm tệp .suo và xóa tất cả. Mở lại giải pháp và nó hoạt động trở lại.
yesman

Tùy chọn này đã làm việc cho tôi, cảm ơn bạn. Đối với VS2019 xóa vs thư mục và mở dự án
Ashi

21

Đối với những người sử dụng VS 2017 (tôi đang ở phiên bản 15.3.4 tại thời điểm này), đây là các bước đơn giản:

  1. Mở giải pháp của bạn trong Windows Explorer và đóng Visual Studio
  2. Trong menu explorer, chọn Xem và đảm bảo rằng hộp kiểm "Mục ẩn" được đánh dấu
  3. Điều hướng đến thư mục con .vs\[your solution name]\v15
  4. Xóa .suotập tin
  5. Khởi động lại VS và xây dựng giải pháp của bạn

Điều đó đã sửa nó cho tôi: F12 đã mở tệp nguồn thực tế, không phải phiên bản "từ siêu dữ liệu".


Như đã lưu ý trong các nhận xét ở nơi khác, thư mục là v16 nếu bạn đang chạy VS2019.
Otis

10

Visual studio thường gặp phải vấn đề về siêu dữ liệu thay vì dự án của bạn nếu bạn thay đổi vị trí nơi bạn đang xây dựng dự án, tức là bạn có thể có một vài phiên bản để kiểm tra mọi thứ.

Chỉ cần xóa tham chiếu và ngay lập tức thêm lại và mọi thứ sẽ được sắp xếp.


8

Các giải pháp được đánh dấu không phải lúc nào cũng hoạt động. Bạn phải đảm bảo rằng dự án GUID được tham chiếu trong các tệp dự án là GUID chính xác cho dự án bạn đang cố gắng tham chiếu. Visual Studio cho phép họ thoát khỏi sự đồng bộ trong một số trường hợp. Bạn có thể lấy GUID dự án từ tệp dự án bằng trình soạn thảo văn bản. Vì vậy, nếu dự án Một dự án tham chiếu B. Mở dự án B.csproj trong trình soạn thảo văn bản, hãy sao chép dự án GUID từ thẻ. Sau đó mở dự án A.csproj trong trình soạn thảo văn bản và đảm bảo rằng bạn đang sử dụng GUID chính xác. Tìm kiếm tên dự án "B" trong trường hợp này. Nó nên ở. Thay thế GUID trong thẻ bằng đúng. Lưu và tải lại. Tất nhiên cũng đảm bảo các tài liệu tham khảo dựa trên tập tin cho các dự án của bạn được loại bỏ. Bạn chỉ muốn tham khảo dự án.


6

Tôi đã giết tất cả các phiên bản VS, xóa SUO, khởi chạy sln và nó hoạt động với tôi ...


Tôi đã gặp một sự cố msbuild bất ngờ, và một loạt các vấn đề phát sinh sau đó bao gồm cả vấn đề này. Điều này đã giải quyết vấn đề. Kỳ dị.
Chris Lukic

3

Xóa dll tham chiếu, Build (sẽ gặp lỗi), THÊM tham chiếu (bạn đã xóa) sau đó xây dựng lại ... F12 trên chức năng của bạn sẽ hoạt động (làm việc cho tôi).


2

Tôi đã tìm ra cách giải quyết vấn đề của tôi từ bài đăng này , có thể nó cũng sẽ làm việc cho một số bạn.

Tôi đã làm theo các bước sau:

  1. Đóng giải pháp.
  2. Xóa tệp cơ sở dữ liệu intellisense cho giải pháp: .ncb
  3. Mở giải pháp.
  4. Xây dựng lại giải pháp.

(Tôi tin rằng bước 3 hoặc 4 sẽ tạo lại tệp cơ sở dữ liệu intellisense khi bị thiếu)

Intellisense, "đi đến định nghĩa" và "tìm tất cả các tài liệu tham khảo" sẽ hoạt động trở lại.


2

Trong trường hợp của tôi, (sử dụng Visual Studio Professional 2015), khi tôi đã tắt trình thiết kế XAML, F12 đã ngừng hoạt động. Ngay sau khi tôi hoàn nguyên các thay đổi và khởi động lại Visual Studio, F12 đã hoạt động trở lại.

Đã kiểm tra mẫu nhiều lần để xác nhận rồi đăng. Hy vọng nó sẽ giúp được ai đó.


1

Triệu chứng:

Visual Studio 2010 Ultimate đã nhiều lần không tìm thấy tài liệu tham khảo cho các chức năng, #defines, bao gồm, v.v. khi sử dụng các tính năng "Chuyển đến định nghĩa" hoặc "Đi đến khai báo" hoặc "Tìm tất cả tài liệu tham khảo" - Intellisense kỳ lạ đang hoạt động.

Sửa chữa:

  1. Đóng Visual Studio
  2. Xóa (đổi tên nếu bạn muốn bảo thủ) tệp .sdf giải pháp
  3. Mở lại Visual Studio

Tệp .sdf sẽ tự động được xây dựng lại bằng cách phân tích các tệp bao gồm trong giải pháp của bạn


2
@alestanis Có lẽ câu trả lời đó không giải quyết được vấn đề cho mọi người.
nuzzolilo

@alestanis Tôi có vấn đề trong OP, nhưng câu trả lời được chấp nhận không giúp tôi .... Có lẽ chúng ta nên xóa tất cả các câu hỏi có câu trả lời được chấp nhận?
Carl

1

Đối với tôi, giải pháp GUID không hoạt động và tôi không thể tìm thấy tệp .ncb của mình. (Hoặc có thể tôi lười biếng và trông không đủ cứng, nhưng điều đó không quan trọng.) Xây dựng lại và khởi động lại studio hình ảnh cũng không giúp được gì.

Những gì tôi đã làm là đóng studio trực quan và xóa các tệp dll và .pdb được tham chiếu trong phần đầu của tệp Meta Data mà intellisense của tôi liên kết đến. Trong trường hợp của tôi, điều đó có nghĩa là tôi đã xóa tệp dll của mình và đó là tệp .pdb khỏi Tiện ích / bin / Phát hành. (Tiện ích là tên của dự án. Tôi đang gặp vấn đề.) Sau đó, tôi khởi động lại phòng thu hình ảnh và xây dựng lại toàn bộ giải pháp. Không còn vấn đề nữa!


1

Chỉ cần tìm một nguyên nhân khác. Tôi đã nâng cấp dự án web của mình lên 4.0 nhưng để lại các thư viện lớp ở mức 2.0. Tại thời điểm đó, tất cả các thư viện lớp trong giải pháp của tôi được coi là tài liệu tham khảo tệp từ dự án web của tôi. Có thể giúp đỡ người khác ...


1

Tôi đã đối mặt với cùng một vấn đề và một trong những đồng nghiệp đã cho tôi giải pháp sau đây và nó đã có hiệu quả! Nếu không có cách nào ở trên phù hợp với bạn,

  1. Xóa tất cả các tham chiếu và thêm chúng trở lại (đảm bảo đường dẫn là chính xác)
  2. Chuyển đến thuộc tính Giải pháp và kiểm tra lại Phụ thuộc Dự án của tất cả các dự án. Đảm bảo rằng dự án bạn sẽ sử dụng được thêm vào như một phụ thuộc trong dự án mà bạn đang làm việc.

1

Tôi đã làm tất cả các bước được đề xuất nhưng không có gì thay đổi,
cuối cùng nhấp chuột phải và thêm menu tham chiếu, tab dự án

  1. chỉ cần bỏ chọn dự án tham khảo.
  2. lưu giải pháp.
  3. chọn cùng một dự án.
  4. Xây dựng lại giải pháp.

Vấn đề được sắp xếp. Hy vọng điều này sẽ giúp một số người.


1

Dưới đây các bước làm việc cho tôi.

  1. Chuyển đến tệp .csproj
  2. Mở nó trong Notepad Chuyển đến dòng nơi dll được giới thiệu.<Reference Include="">
  3. Xóa dòng

    <SpecificVersion>False</SpecificVersion> 
    or 
    <SpecificVersion>True</SpecificVersion>
    

1

Sau khi xóa các tệp dll khỏi Visual Studio trước và thêm lại chúng theo cách thủ công từ Solution Explorer -> Trang web -> Thêm -> Tham chiếu và bật Ứng dụng 32 bit trong IIS đã sửa nó cho tôi.


1

# 1

Kiểm tra "Xem - Trình duyệt đối tượng" và nếu bạn thấy nhiều hơn một hội đồng có cùng tên - đó là lý do tại sao bạn gặp phải lỗi này.

Đối với chúng tôi, đó là một lỗi trong VS 2019:

Nếu bạn có ASP.NET "Dao cạo râu" trong App_Code thư mục, Visual Studio 2019 diễn giải rằng đó là một hội đồng khác nhưng có cùng tên, sẽ ẩn hội đồng thực tế.

Không có cách khắc phục nào khác ngoài việc viết lại các trình trợ giúp đó thành các chế độ xem một phần hoặc các trình trợ giúp HTML (dù sao bạn cũng sẽ phải làm điều đó nếu bạn có kế hoạch di chuyển sang .NET Core).

Xem cách khắc phục này trên trang web của MS và vui lòng cập nhật lỗi ở đó để MS sửa lỗi

https://developercommunity.visualstudio.com/solutions/1008795/view.html (vui lòng upvote)

# 2

Một lý do khác tại sao cùng một hội đồng có thể được tải hai lần trong trình duyệt đối tượng là nếu bạn có một dự án thử nghiệm đơn vị bắt đầu quá trình iis-express và không bao giờ giết nó đúng cách.


0
  1. nhấp vào menu trang web từ VS.
  2. Thêm tài liệu tham khảo...
  3. Bấm vào tab dự án từ hộp thoại
  4. Chọn ddl
  5. Bấm vào nút ok

0

Trong trường hợp của tôi, tôi vừa mới thay đổi

<mvcBuildViews>

thành "true" trong tệp .csproj của trang web của tôi (để tìm lỗi biên dịch trong các tệp xem Dao cạo của tôi: http://forums.asp.net/t/1909113.aspx?How+to+have+Visual+Studio+2012+returned + biên dịch + lỗi + bật + dao cạo + cú pháp + lỗi + in + asp + net + web + trang + 2 + ) và khi tôi xây dựng, tôi đã gặp lỗi từ thư mục / obj / Debug / của trang web. Từ bất kỳ tệp nào trong số đó (đã lỗi thời), nhấp chuột phải và chọn "Chuyển đến Định nghĩa" sẽ cung cấp cho tôi phiên bản [siêu dữ liệu].

Vì vậy, đối với tôi, không có giải pháp nào ở đây có hiệu quả, vì tôi đã không bắt đầu từ một tệp thực sự nằm trong dự án của mình. Đã xóa toàn bộ thư mục / obj / Debug /, các lỗi đã biến mất và từ bất kỳ tệp thông thường nào tôi có thể sử dụng chính xác Chuyển đến Định nghĩa.


0

Tôi vừa gặp vấn đề này trên VS 2013. Một cái gì đó tôi có thể (đã làm?) Không cô lập là thay đổi GUID trong tệp CSPROJ. Vì các tệp CSPROJ được kiểm tra vào SVN, tôi không thể đơn giản thay đổi GUID trên dev cục bộ của mình. Thay vào đó, tôi liên tục SVN hoàn nguyên thay đổi cục bộ mỗi khi nó xảy ra.

Đầu tiên, tôi phải giải quyết vấn đề GUID đang thay đổi.

  1. Hoàn nguyên CSPROJ về phiên bản đã đăng ký.
  2. Mở CSPROJ thông qua trình soạn thảo văn bản, KHÔNG VS.
  3. Trích xuất giá trị từ tệp CSPROJ nguyên sơ.

    {B1234567-5123-4AAE-FE43-8465767788ED}

  4. Mở tệp SLN thông qua trình soạn thảo văn bản, KHÔNG VS.

  5. Xác định vị trí tham chiếu Dự án trong giải pháp.

    Dự án ("{FAE12345-3210-1357-B3EB-00CA4F394F7C}") = "some.Project", ".... \ lắp ráp \ some.Project \ some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "Dự án cuối

  6. GUID đầu tiên được liệt kê là GUID Giải pháp. Đối với mọi dự án được tham chiếu trong SLN của bạn, bạn sẽ thấy giá trị này được lặp lại ở đối số đầu tiên. GUID theo sau .csproj là cái bạn muốn thay thế bằng GUID nguyên sơ.

Điều này sẽ giải quyết vấn đề đầu tiên, nhưng việc hạ cánh "Đi đến Định nghĩa" trong dữ liệu meta không được giải quyết. Trong tệp SLN của chúng tôi, có một dự án chính (trang web của chúng tôi), vì vậy mục nhập của nó trong tệp SLN phải chứa mục ProjectSection có nhiều giá trị GUID. Đây là một ví dụ:

ProjectSection(ProjectDependencies) = postProject
{AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD} = {AC50D230-24C4-4DCA-BAAD-355E6AF5EFBD}
EndProjectSection

Lưu ý GUID bị thiếu trong bộ sưu tập này là một trong dự án nguyên sơ của tôi.

  1. Thêm GUID bị thiếu làm mục nhập cuối cùng giữa ProjectSection và EndProjectSection. Định dạng dường như là trên mỗi dòng và đó là {GUID} = {GUID}.
  2. Lưu các tập tin.
  3. Mở giải pháp của bạn.
  4. Nhấp chuột phải vào một tham chiếu trong dự án mới được thêm vào và "Chuyển đến Định nghĩa".

0

Tôi đã có một tài liệu tham khảo vòng tròn giữa hai dự án liên quan (đó là không có). Phải cơ cấu lại mã của tôi một chút để giải quyết nó vì cả hai dự án đều thực sự phụ thuộc vào nhau. Loại bỏ một trong các tài liệu tham khảo đã giải quyết vấn đề intellisense. Đó là thiếu sót về mặt logic và có lẽ tôi sẽ không nhận ra nếu không có lỗi này!


0

Cái này làm việc cho tôi:

  1. Nhấp chuột phải vào dll trong thư mục tham chiếu trong trình khám phá giải pháp của bạn
  2. Xóa tập tin dll
  3. Nhấp chuột phải vào thư mục Tham khảo, sau đó
  4. Thêm tham chiếu vào tệp dll một lần nữa

0

Điều này có thể xảy ra nếu bạn đang cố gắng chuyển sang định nghĩa trong một dự án đã được tải (Không khả dụng). Nhấp chuột phải vào dự án chưa tải và chọn "Tải lại dự án".


-1

Dự đoán tốt nhất là bạn không có thông tin gỡ lỗi. Có thể bạn có nhiều bản sao lắp ráp trên đĩa và nó không có tệp .pdb với nó.

Thực hiện tìm kiếm tên lắp ráp của bạn từ các dự án của bạn và xóa tất cả chúng và xây dựng lại.

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.