Tệp siêu dữ liệu… không thể tìm thấy lỗi khi xây dựng dự án


98

Mỗi khi tôi khởi động Visual Studio 2008, lần đầu tiên tôi cố gắng chạy dự án, tôi gặp lỗi CS0006 Không thể tìm thấy tệp siêu dữ liệu ... không thể tìm thấy. Nếu tôi xây dựng lại giải pháp hoàn chỉnh thì nó hoạt động.

Một số thông tin về giải pháp:

  • Tôi đang xây dựng ở chế độ gỡ lỗi và Visual Studio phàn nàn về việc không tìm thấy dll: s trong thư mục phát hành.

  • Các dự án mà Visual Studio phàn nàn được nhiều dự án khác sử dụng trong giải pháp.

  • Tôi đã thay đổi đường dẫn đầu ra mặc định của tất cả các dự án thành ...... \ build \ debug \ ProjectName và ...... \ build \ release \ ProjectName tương ứng. (Chỉ để lấy tất cả các tệp xây dựng trong một thư mục)

  • Tôi có cùng một vấn đề với một giải pháp khác.

  • Giải pháp được tạo ra từ đầu.

  • Có 9 dự án trong giải pháp. Một thư viện WPF và 8 lớp sử dụng dotnet 3.5.

Bất kỳ ý tưởng về những gì đang gây ra vấn đề này?


Câu trả lời:


133

tôi đã gặp sự cố tương tự trong đó "không thể tìm thấy siêu dữ liệu". trên thuộc tính giải pháp, hãy đảm bảo rằng hộp kiểm "xây dựng" được đánh dấu trong Trình quản lý cấu hình / xây dựng cho mỗi dự án.


16
Đối với bất kỳ ai không thể tìm thấy nó, Build / Configuration Manager đề cập đến mục menu Build -> Configuration Manager.
John Kurlak

4
Tôi vừa gặp sự cố này, nguyên nhân là do một lỗi khác khiến dự án được tham chiếu không thể xây dựng thành công. Đây là một bước kiểm tra sạch sẽ, vì vậy không có tệp dll nào tồn tại từ các bản dựng thành công trước đó. Sửa lỗi và đảm bảo một dự án được tham chiếu xây dựng chính xác.
Moulde

9
Đôi khi, ngay cả điều này cũng không giúp ích được gì, như Nick đã lưu ý ở trên. Trong trường hợp đó, việc đóng và khởi động lại VS luôn hoạt động với tôi. YMMV.
philofinfinitejest

3
Không giải quyết được vấn đề. Tôi đã khởi động lại VS và nó không giải quyết được sự cố.
Shimmy Weitzhandler

26

Điều này thường là do một dự án được tham chiếu trong một giải pháp khác với dự án đang mắc lỗi. Nếu bạn xóa giải pháp khác hoặc phân nhánh mã, bạn sẽ có nhiều khả năng gặp lỗi này. Giải pháp là cuộn xuống danh sách các lỗi "không tìm thấy siêu dữ liệu" và xem các tham chiếu đến các dự án. 9/10 lần, bạn sẽ thấy một tham chiếu bị hỏng đến một dự án không có trong giải pháp này. Thêm các dự án để sửa lỗi tham chiếu và xây dựng lại. Điều đó sẽ sửa chữa nó.

(Tôi vừa gặp phải vấn đề này ngày hôm nay và đã xảy ra trong quá khứ, và điều này LUÔN LUÔN hoạt động)


Chỉ có những dự án nằm trong giải pháp của tôi là phàn nàn.
The Muffin Man,

7

Tôi gặp sự cố này, không chắc nó có giúp được gì không nhưng vấn đề của tôi là do có hai phiên bản khác nhau của cùng một dự án được tham chiếu bởi hai giải pháp khác nhau. Khi tôi xây dựng giải pháp với tham chiếu đến dự án chính xác đầu tiên, giải pháp thứ hai sẽ tốt, tuy nhiên, nếu tôi làm sạch giải pháp đầu tiên và cố gắng xây dựng giải pháp thứ hai, nó sẽ không thành công với các thông báo lỗi tham chiếu dll này.

Giải pháp cho tôi là tìm ra tôi có hai dự án có cùng tên đã vô tình bị trùng lặp và xóa tham chiếu đến dự án cũ không chính xác và thêm tham chiếu vào dự án mới.

Trong mọi trường hợp, có vẻ như những thông báo này hơi giống cá trích đỏ, tôi sẽ kiểm tra kết quả xây dựng của bạn và tìm dự án đầu tiên không xây dựng được và kiểm tra rất cẩn thận các tham chiếu về dự án đó.


1
+1 cho ghi chú về tính không chính xác của những thông báo này. Điều này khó xảy ra đối với tôi vì các đường dẫn đến các tập hợp được tham chiếu trong một giải pháp đã bị hỏng. Đọc chúng và biên dịch lại đã giải quyết được vấn đề.
E. Rodriguez

6

Một điều khác cần xác minh là độ dài đường dẫn ... nguyên nhân cũng không tìm thấy Tệp siêu dữ liệu và lỗi biên dịch ... Tôi vừa đổi tên các thư mục của mình thành các đường dẫn ngắn hơn và voilá, các lớp không được nhận dạng và giữ nguyên màu đen, chuyển sang màu xanh lam chỉ bằng cách đổi tên thư mục.


5

Đối với tôi, tôi đã có một dự án được tham chiếu trong một dự án khác. Nó không hiển thị nó đã bị hỏng trong danh sách tài liệu tham khảo trong cửa sổ trình khám phá giải pháp nhưng tôi vẫn xóa và đọc nó. Nó xây dựng tốt ngay bây giờ!


Đúng là, tôi đã xóa tất cả các tham chiếu và thêm lại chúng.

3

Tôi đã trải qua tất cả các bước này trong VS2012, nhưng tôi vẫn gặp phải vấn đề này khi xây dựng giải pháp nói chung (các dự án riêng lẻ được xây dựng tốt mà không có lỗi).

Tôi thấy rằng nếu bạn nhấp chuột phải vào Giải pháp của mình trong Trình khám phá Giải pháp và chọn "Thứ tự Xây dựng", bạn có thể thấy thứ tự mà VS đang sử dụng để xây dựng lại giải pháp của bạn. Nó có khả năng không xảy ra.

Bạn có thể sửa thứ tự xây dựng bằng cách nhấp vào tab Phụ thuộc và chọn các dự án phụ thuộc vào các dự án khác trong giải pháp và kiểm tra các dự án mà chúng phụ thuộc vào. Một khi bạn nhấn ổn và thực hiện xây dựng lại giải pháp, bạn nên bắt đầu.


2

Cách tôi đã giải quyết vấn đề này trong quá khứ trong VS2005 cũng như hiện tại trong VS2008 là đảm bảo tất cả các phụ thuộc đều chính xác và các tham chiếu trỏ đến các dự án không phải là dlls. Sau đó đi qua và xây dựng thủ công từng dự án theo thứ tự phụ thuộc. Sau khi bản dựng cuối cùng, bạn có thể chạy một bản dựng giải pháp đầy đủ và nó ổn.

Câu trả lời này là để tham khảo trong tương lai cho những người khác vì tôi biết câu hỏi đã hơn 15 tháng.

Chúc mừng


2

Tôi có một vài điểm tôi muốn làm.

Nếu bạn đang dựa vào tệp giải pháp làm tệp xây dựng của mình trong MSBuild, hãy đảm bảo rằng bạn thêm các dự án vào tệp giải pháp theo thứ tự mà bạn muốn chúng xây dựng, tức là dựa trên thứ tự phụ thuộc lẫn nhau của các dự án. Điều này trở nên rất quan trọng nếu bạn có các dự án trong giải pháp mà các dự án khác phụ thuộc vào, nhưng các tham chiếu đã được thêm dưới dạng "Tài liệu tham khảo" chứ không phải là "Tài liệu tham khảo dự án".

Bạn nên tránh điều đó giống như bệnh dịch hạch, nhưng trong trường hợp bạn cần phải làm điều đó, thì ít nhất hãy đảm bảo rằng các dự án phụ thuộc xuất hiện sớm hơn trong tệp giải pháp.

Bạn nên nhớ rằng cách Visual Studio tạo thứ tự xây dựng không hoàn toàn giống với cách MSBuild thực hiện. Điều này là do MSBuild chủ yếu phụ thuộc vào tệp dự án để cho nó biết các phụ thuộc là gì, trong khi Visual Studio cũng có thể lưu chúng trong tệp soltuion. Do đó, đôi khi bạn có thể thấy các tình huống Visual Studio xây dựng giải pháp một cách hoàn hảo, nhưng MSBuild không thể làm được.

Tôi đã gặp một vài trường hợp mà tôi phải điều chỉnh thủ công thứ tự các dự án xuất hiện trong tệp giải pháp cũng như thứ tự các dự án được liệt kê trong phần tử ProjectRefferences trong một dự án Trang web trong tệp giải pháp.

Tôi hy vọng thông tin trên sẽ giúp ích.


2

Ví dụ: nếu bạn sử dụng ngữ cảnh Dữ liệu LinqtoSQL và tệp .designer.cs bị thiếu, bạn sẽ gặp phải lỗi Không tìm thấy tệp siêu dữ liệu.

Dễ dàng tạo lại tệp Designer.cs.

Mở dbml bằng chế độ xem xml. Thêm một dòng trống, sau đó xóa nó, sau đó lưu. Điều đó sẽ tạo lại tệp Designer.cs của bạn.

Trong một số trường hợp, nếu bạn có mã bên trong mã của ngữ cảnh dữ liệu, thì công việc này sẽ không hoạt động. Trong trường hợp này, hãy lấy mã ra khỏi mã phía sau và đặt nó vào notepad hoặc thứ gì đó. Thực hiện thủ thuật thêm sau đó xóa một dòng khỏi DC và lưu. Bây giờ đặt mã trở lại và lưu.


2

Tôi gặp sự cố tương tự mỗi khi cập nhật dự án từ SVN.
Một giải pháp khác cho ASP.NET:

  1. Đóng IDE.
  2. Xóa các tệp trong C:\WINDOWS\microsoft.net\framework\v…\Temporary ASP.NET File\.

1

Tôi cũng gặp phải lỗi này và nguyên nhân là do Dự án đang tham chiếu đến chính nó. Tôi không biết nó xảy ra như thế nào nhưng tôi chỉ xóa tham chiếu và thì đấy


1

Đầu tiên hãy đảm bảo rằng hộp kiểm "xây dựng" được đánh dấu trong Xây dựng -> Trình quản lý cấu hình cho mỗi dự án.

Trong trường hợp, nếu bạn đã chọn tất cả các dự án trong menu Build -> Configuration Manager và khởi động lại thủ thuật VS không hoạt động với bạn thì bạn phải tìm tham chiếu của (các) tệp (có thể là dll hoặc cs) trong dự án của bạn và xóa các tham chiếu đó theo cách thủ công. (Các) tệp / tham chiếu đó sẽ được hiển thị bằng biểu tượng màu vàng. Lỗi chắc chắn hướng dẫn bạn dự án giải pháp nào bạn nên xem xét.

Nguyên nhân của lỗi này là do bạn đã xóa (các) tệp theo cách thủ công trong windows explorer và VS đã không cập nhật tham chiếu và cố định vị tệp không tồn tại nữa!


1

Trong trường hợp của tôi, tôi phát hiện ra rằng một trong những giải pháp của tôi đang tham chiếu đến thứ gì đó không có trên máy tính (VBIDE). Sau khi tôi xóa tham chiếu vi phạm, phần còn lại của các dự án được xây dựng chính xác. Hy vọng rằng sẽ giúp một ai đó.

Và trong một tình huống khác, tôi đã chuyển một số mã từ dự án này sang dự án khác và đoạn mã đó đang tham chiếu đến Json.net. Tôi đã thêm một tham chiếu đến Json.net theo cách thủ công nhưng điều đó đã làm cho vấn đề xảy ra với nó. Tôi đã giải quyết nó bằng cách cài đặt Json.net thông qua NuGet và điều đó đã làm cho sự cố biến mất. Hy vọng rằng sẽ giúp một ai đó.


0

Điều tương tự đã xảy ra. Tôi có một số giải pháp tham khảo các dự án thư viện giống nhau (.net 3.5). Tôi nhận thấy khi một cái được xây dựng trong cấu hình gỡ lỗi / bình thường và cái khác sử dụng một số chỉ thị trình biên dịch khác (sqlite / chế độ cục bộ), điều này sẽ xảy ra. Đơn giản chỉ cần xây dựng cả hai dự án với các chỉ thị giống nhau và bạn sẽ ổn.


0

Nếu bạn đã thêm một dự án mới vào giải pháp, hãy kiểm tra xem dự án này có trong danh sách xây dựng hay không (xem Trình quản lý cấu hình)


0

Tôi gặp khó khăn với vấn đề lưu khi muốn bao gồm tệp dll do Matlab tạo. Và cuối cùng tôi đã giải quyết nó bằng cách sao chép tệp .ctf, có nghĩa là chứng chỉ mà tôi cho là và một .netmodule, cần thiết cho hoạt động chính xác của tệp .dll, cùng với tệp .dll. Và điều đó đã thực sự hiệu quả! Vì vậy, đề xuất của tôi là kiểm tra xem .dll có cần bất kỳ tệp nào khác để kết hợp không.


0

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

Tôi đã nhận được cùng một lỗi. Và tôi quyết định xóa và thêm lại các tham chiếu của dự án. Tôi không thể thêm lại chúng vì tham chiếu Cơ sở dữ liệu trong mỗi dự án được tham chiếu đều trống.

Khi tôi đặt lại tham chiếu cơ sở dữ liệu về cài đặt chính xác, tôi có thể xây dựng mà không gặp vấn đề gì thêm. Ngoài ra, đây là nỗ lực đầu tiên của tôi để xây dựng lại dự án này sau khi có mã nguồn nhánh trong VSS.

Chúc may mắn


0

Tôi đã gặp lỗi này, lỗi này do một trong những phụ thuộc dự án của tôi trong đó tên lắp ráp đã được thay đổi trong dự án, nhưng tham chiếu không được cập nhật. Vì vậy, cập nhật tham chiếu hoặc đổi tên lắp ráp trở lại sẽ khắc phục được điều đó.


0

EE - Trong trường hợp của tôi, vấn đề là trong dự án có khung thực thể, mở sơ đồ, kéo một bảng bất kỳ vào 2 cm :) và lưu, VS sẽ cập nhật tất cả các liên kết của anh ấy vào DB ... xây dựng dự án này và xây dựng giải pháp , Xây dựng.


0

Điều duy nhất đã khắc phục tôi (vì tôi không chạy VS2010 trên tài khoản quản trị viên) là di chuyển thủ công biến môi trường VS120COMNTOOLS từ Biến hệ thống sang Biến người dùng.


0

Xóa các mục nhập của tất cả các tệp nguồn không còn xuất hiện trong kiểm soát nguồn và hệ thống tệp khỏi tệp .csproj của bạn đã làm việc cho tôi.


Cách tiếp cận chi tiết:

Chà, câu trả lời sau đây của tôi không chỉ là bản tóm tắt của tất cả các giải pháp, mà nó còn cung cấp nhiều hơn thế.

Phần 1):

Trong các giải pháp chung:

Tôi đã mắc phải 4 lỗi loại này ('không thể tìm thấy tệp siêu dữ liệu') cùng với 1 lỗi nói rằng "Không thể mở tệp nguồn (" Lỗi không xác định ")".

Tôi đã cố gắng loại bỏ lỗi 'không thể tìm thấy tệp siêu dữ liệu'. Vì vậy, tôi đã đọc nhiều bài đăng, blog, v.v. và nhận thấy những giải pháp này có thể hiệu quả (tóm tắt chúng ở đây):

  1. Khởi động lại VS và thử xây dựng lại.

  2. Đi tới 'Giải pháp Explorer' . Nhấp chuột phải vào Giải pháp. Đi tới Thuộc tính . Đi tới 'Trình quản lý cấu hình' . Kiểm tra xem các hộp kiểm trong 'Xây dựng' có được chọn hay không. Nếu bất kỳ hoặc tất cả chúng không được chọn, hãy kiểm tra chúng và thử xây dựng lại.

  3. Nếu (các) giải pháp trên không hoạt động, hãy làm theo trình tự được đề cập trong bước 2 ở trên và ngay cả khi tất cả các hộp kiểm đã được chọn, hãy bỏ chọn chúng, kiểm tra lại và thử tạo lại.

  4. Xây dựng đơn đặt hàng và phụ thuộc dự án:

    Đi tới 'Giải pháp Explorer' . Nhấp chuột phải vào Giải pháp. Đi tới 'Sự phụ thuộc của Dự án ...' . Bạn sẽ thấy 2 tab: 'Phụ thuộc''Thứ tự xây dựng' . Thứ tự xây dựng này là thứ tự xây dựng giải pháp. Kiểm tra sự phụ thuộc của dự án và thứ tự xây dựng để xác minh xem một số dự án (giả sử 'dự án1') phụ thuộc vào dự án khác (giả sử 'dự án2') đang cố gắng xây dựng trước dự án đó (dự án2). Đây có thể là nguyên nhân gây ra lỗi.

  5. Kiểm tra đường dẫn của tệp .dll bị thiếu:

    Kiểm tra đường dẫn của tệp .dll bị thiếu. Nếu đường dẫn chứa khoảng trắng hoặc bất kỳ ký tự đường dẫn không hợp lệ nào khác, hãy xóa nó và thử tạo lại.

    Nếu đây là nguyên nhân, hãy điều chỉnh thứ tự xây dựng.


Phần (2):

Trường hợp cụ thể của tôi:

Tôi đã thử tất cả các bước ở trên với các hoán vị và kết hợp khác nhau với việc khởi động lại VS vài lần. Nhưng, nó đã không giúp tôi.

Vì vậy, tôi quyết định loại bỏ lỗi khác mà tôi đang gặp phải ('Không thể mở tệp nguồn (' Lỗi không xác định ')').

Tôi đã xem qua một blog: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

Tôi đã thử các bước được đề cập trong blog đó và tôi đã thoát khỏi lỗi 'Không thể mở tệp nguồn (' Lỗi không xác định ')' và đáng ngạc nhiên là tôi đã loại bỏ các lỗi khác ('không tìm thấy tệp siêu dữ liệu') .


Phần (3):

Đạo đức của câu chuyện:

Hãy thử tất cả các giải pháp như đã đề cập trong phần (1) ở trên (và bất kỳ giải pháp nào khác) để loại bỏ lỗi. Nếu không có gì hiệu quả, theo blog được đề cập trong phần (2) ở trên, hãy xóa các mục nhập của tất cả các tệp nguồn không còn xuất hiện trong kiểm soát nguồn và hệ thống tệp khỏi tệp .csproj của bạn .


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.