Visual studio - gặp lỗi "Không tìm thấy tệp siêu dữ liệu 'XYZ'" sau khi tiếp tục chỉnh sửa


76

Tôi đã vấp phải một vấn đề thực sự khó chịu.
Khi tôi gỡ lỗi phần mềm của mình, mọi thứ đều chạy ổn, nhưng nếu tôi nhấn điểm ngắt và chỉnh sửa mã, khi tôi cố gắng tiếp tục chạy, tôi sẽ gặp lỗi:
Metadata file 'XYZ' could not be found

Sau khi xem xét xung quanh một lúc, tôi tìm thấy một số vấn đề tương tự , nhưng tất cả đều liên quan đến lỗi xây dựng, đây không phải là trường hợp của tôi (điều này chỉ xảy ra sau khi chỉnh sửa-tiếp tục).

Những gì tôi đã cố gắng cho đến nay:

  • Mã của tôi đang biên dịch và đang chạy.
  • Tôi đã làm sạch dung dịch và khởi động lại VS.
  • Tôi đảm bảo rằng dự án của tệp bị thiếu đang được xây dựng cho cấu hình tôi đang chạy (trong trình quản lý cấu hình).
  • Tôi đã tạo dự án của tệp bị thiếu theo cách thủ công.

Một số thông tin bổ sung :

  • Tôi thay đổi cái gì cũng không thành vấn đề, vẫn bị lỗi như cũ (thay đổi không liên quan đến thiếu tệp).
  • Điều này cũng xảy ra khi tôi tạm dừng và tiếp tục (không chỉ các điểm ngắt)
  • Tôi đang chạy dự án bằng cách sử dụng cấu hình tùy chỉnh (trình quản lý cấu hình ...). Khi tôi chạy nó bằng cách sử dụng Debugcấu hình mặc định , lỗi không xảy ra.

Có ý kiến ​​gì không?


Tiềm năng sửa chữa nhanh chóng cho nhiều bằng cách đặt lại phụ thuộc dự án - xem câu trả lời của tôi dưới đây: stackoverflow.com/a/34596007/2284031
Bến Wilde


1
Trong trường hợp của tôi, một lỗi trình biên dịch đang ẩn trong đống rác của vài chục Metadata file could not be foundlỗi.
Mã với Hammer

Câu trả lời:


109

Cuối cùng những gì đã giải quyết vấn đề là:

  1. Làm sạch từng dự án riêng lẻ ( Nhấp chuột phải > Làm sạch ).
  2. Xây dựng lại từng dự án riêng lẻ ( Nhấp chuột phải > Xây dựng lại ).
  3. Xây dựng lại dự án khởi nghiệp.

Tôi đoán vì lý do nào đó, chỉ làm sạch dung dịch đã có tác dụng khác với việc làm sạch từng dự án một cách cụ thể.

Chỉnh sửa:
Theo nhận xét của @maplemale, Có vẻ như đôi khi việc xóa và thêm lại từng tham chiếu cũng được yêu cầu.

Cập nhật 2019:
Câu hỏi này trước đây có rất nhiều lưu lượng truy cập, nhưng có vẻ như từ khi VS 2017 ra mắt thì nó ít được chú ý hơn nhiều.
Vì vậy, một đề xuất khác sẽ là - Cập nhật lên phiên bản VS mới hơn (> = 2017) và trong số các tính năng mới khác, vấn đề này cũng sẽ được giải quyết


10
Tôi đã phải làm điều này, nhưng với một bước bổ sung. Vì vậy, dự án khởi động của tôi có tham chiếu đến các dự án thư viện / dll lớp khác trong giải pháp. Tôi đã phải làm sạch từng cái một và xây dựng lại, nhưng sau đó cũng phải xóa và thêm lại từng tham chiếu. Đây dường như là một vấn đề cụ thể của VS 2013. Tôi chưa bao giờ phải làm bất cứ điều gì như thế này trong năm 2012 hoặc 2010.
maplemale

@Avi, tnx! Tôi đã phải chạy sạch sẽ và xây dựng lại ba lần cho tất cả các dự án ... nhưng cuối cùng nó đã hoạt động.
Joezer

Tôi chỉ kết thúc việc làm sạch dự án chứa tệp được tham chiếu bởi thông báo lỗi sau khi giải pháp sạch để giải quyết vấn đề này.
adamdc78

5
yeah ... Tôi có gần 70 dự án - không phải làm điều này
Ben Wilde

@Ben, bạn có thể chọn tất cả, tất cả 70 dự án, sau đó loại trừ những dự án thất bại. Làm sạch và xây dựng lựa chọn và sau đó Clen & Xây dựng các dự án còn lại.
user3752281

46

Theo như tôi có thể nói, điều này xảy ra khi các phụ thuộc của dự án bị rối tung vì bất kỳ lý do gì (trong khi tất cả các tham chiếu giữa các dự án vẫn còn nguyên vẹn). Đối với nhiều trường hợp, nó KHÔNG phải là vấn đề mã. Và đối với những người có nhiều hơn một vài dự án, việc duyệt qua từng dự án một là KHÔNG chấp nhận được.

Thật dễ dàng để đặt lại các phụ thuộc của dự án -

  1. Chọn tất cả các dự án và nhấp chuột phải để dỡ bỏ
  2. Chọn tất cả các dự án và nhấp chuột phải tải lại
  3. Giải pháp xây dựng lại

Đối với những người gặp sự cố trong mã của họ hoặc một số vấn đề khác gây ra sự cố này, rõ ràng bạn sẽ phải giải quyết vấn đề đó trước.


2
Trên thực tế @Ben Wilde, tôi phải làm điều này mỗi khi tôi nhận được một chi nhánh trong git. Bạn đã tìm thấy một giải pháp lâu dài ở tất cả?
dalcam

Đôi khi việc nâng cấp studio trực quan sẽ giúp vấn đề không tái diễn.
Ben Wilde

15

Một lý do có thể là bạn đã nâng cấp một số dự án của mình (trong giải pháp) lên phiên bản cao hơn, ví dụ từ .NET 4.0 lên 4.5 Điều này đã xảy ra trong trường hợp của tôi khi tôi mở giải pháp trong VS 2013 (ban đầu được tạo bằng VS 2010 và .NET 4.0). Khi tôi mở trong VS 2013, dự án C ++ của tôi đã được cập nhật lên .NET 4.5 và tôi bắt đầu thấy vấn đề.


Đó chính xác là những gì đã xảy ra với tôi. sự khác biệt duy nhất là tôi nâng cấp từ NET 4.5 đến 4.6.1 trong VS 2015
Alvaro Pereira

11

Nói chung loại lỗi này đi kèm với những sai lầm của con người như nếu chúng ta thay đổi không gian tên theo một cách nào đó không đúng hoặc thay đổi tên thư mục từ explorer cho dự án hiện tại, v.v., nơi mà trình biên dịch đôi khi không thể phát hiện.

Tôi đã gặp phải lỗi tương tự, để giải quyết tôi đã thử vài bước. Vui lòng làm theo tất cả các bước:

  1. Làm sạch toàn bộ giải pháp
  2. Nhấp chuột phải vào mọi Dự án trong giải pháp của bạn, Đi tới Thuộc tính và đặt không gian tên Mặc định cũng như tên lắp ráp Mặc định giống như trong mã của bạn (tức là không gian tên trước tên lớp)
  3. Kiểm tra tên Thư mục cho từng dự án bằng cách đi qua trình khám phá (Giải pháp dự án của bạn ở đâu). Nếu không khớp với tên dự án của bạn, hãy làm cho nó tương tự (Như bước 2 ) với chúng.
  4. Xóa tất cả các tham chiếu của bạn khỏi mỗi dự án có liên quan đến một giải pháp khác của cùng một giải pháp và thêm lại.
  5. Trong thư mục Giải pháp Dự án của Bạn, bạn sẽ tìm thấy tệp Dự án Visual c #. Nhấp chuột phải và mở bằng Notepad. Trong các dòng đầu tiên của bạn, bạn sẽ tìm thấy các dòng cho mọi dự án như dưới đây:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "**Client**", "**Client** \ **Client**.csproj", "{4503E259-0E3B-414A-9074-F251684322A5}" EndProject

Kiểm tra lại Tên thư mục (tôi đã đánh dấu trong BOLD) và làm cho nó tương tự như những gì bạn đã làm ở bước 2 .

  1. Làm sạch lại toàn bộ dung dịch

  2. Xây dựng Giải pháp (Nếu không hiệu quả, hãy thử xây dựng từng cá nhân sau khi làm sạch lại)


3
Tôi đã gặp sự cố này trong Visual Studio 2013 và Bước 4 đã làm việc cho tôi!
Michael

Tôi đã mở tệp .csproj và xóa tất cả các quyền sử dụng / tham chiếu đến tệp siêu dữ liệu bị thiếu, sau đó cài đặt lại và nó hoạt động!
mattyb

8

Đảm bảo rằng tất cả các dự án phụ thuộc của bạn đang sử dụng cùng một phiên bản .Net Framework. Tôi đã gặp sự cố tương tự do một dự án phụ thuộc sử dụng 4.5.1 gây ra, trong khi tất cả những người khác đang sử dụng 4.5. Thay đổi dự án từ 4.5.1 thành 4.5 và xây dựng lại giải pháp của tôi đã khắc phục sự cố này cho tôi.


Ở đây giống nhau, tất cả trừ một dự án là cùng một phiên bản!
Stoyan Berov

Cảm ơn cho chạy bộ bộ nhớ ;-) Đây là dễ dàng bỏ qua, gửi một xuống một hang thỏ ...
Tom Miller

cảm ơn, điều này thực sự đã giúp cho med. Đã thử hai giải pháp đầu tiên ở trên cùng mà không gặp may.
Mana

5

Không thể tìm thấy XYZ vì chưa được xây dựng ....

Nhấp chuột phải vào giải pháp và kiểm tra Phụ thuộc Dự án, Thứ tự Xây dựng Dự án cũng sẽ thay đổi theo các phụ thuộc đã được thiết lập.


Từ đó bạn có thể thay đổi thứ tự xây dựng cho các dự án. Đôi khi các phần phụ thuộc không đồng bộ.
Carlos Toledo

4

Điều duy nhất phù hợp với tôi là xóa .suotệp Tùy chọn Người dùng Giải pháp ( ) . Lưu ý rằng, đây là một tập tin ẩn.

Để tìm tệp này, hãy đóng phòng thu Virsual của bạn và tìm kiếm .suo từ trình khám phá tệp trong dự án của bạn.

Xóa tệp .suo

Tái bút : một tệp .suo mới sẽ được tạo lại khi bạn xây dựng lại dự án của mình và hy vọng tệp mới tạo này sẽ không gây ra sự cố cho bạn.

Tôi hy vọng điều đó sẽ giúp ai đó thoát khỏi lỗi anoying này :).


3

Chà, câu trả lời của tôi không chỉ là 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 cho biết '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à thấy những giải pháp này có thể hiệu quả (tóm tắt chúng ở đây):

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

Đ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.

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.

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' và '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.

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

Kiểm tra đường dẫn của .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.


3

Tôi đã có vấn đề này trong nhiều ngày! Tôi đã thử tất cả những thứ ở trên, nhưng sự cố vẫn tiếp tục quay trở lại. Khi thông báo này được hiển thị, nó có thể có nghĩa là "một hoặc nhiều dự án trong giải pháp của bạn không được biên dịch sạch sẽ" do đó siêu dữ liệu cho tệp không bao giờ được ghi. Nhưng trong trường hợp của tôi, tôi không thấy bất kỳ lỗi trình biên dịch nào khác !!! Tôi tiếp tục cố gắng biên dịch từng giải pháp theo cách thủ công và chỉ sau khi VS2012 thực sự tiết lộ một số lỗi trình biên dịch mà tôi chưa gặp trước đây, vấn đề này mới biến mất.

Tôi đã đánh lừa với các lệnh xây dựng, không có lệnh xây dựng, tham chiếu các cuộn gỡ lỗi (được biên dịch thủ công) ... KHÔNG CÓ GÌ dường như hoạt động, cho đến khi tôi tìm thấy những lỗi này không hiển thị khi biên dịch toàn bộ giải pháp !!!!

Đôi khi, có vẻ như, khi biên dịch, trình biên dịch sẽ thoát ra do một số lỗi ... Tôi đã thấy điều này trong quá khứ, nơi sau khi khắc phục sự cố, các lần biên dịch tiếp theo hiển thị lỗi MỚI. Tôi không biết tại sao nó lại xảy ra và rất hiếm khi tôi gặp những vấn đề này. Tuy nhiên, khi bạn có chúng như thế này, đó là một nỗi đau thực sự khi cố gắng tìm hiểu điều gì đang xảy ra. Chúc may mắn!


2

Bạn có đang sử dụng công cụ tạo mã cơ sở dữ liệu như SQLMETAL trong dự án của mình không?

Nếu vậy, bạn có thể đang phải đối mặt với vấn đề chuyển đổi đa tập trung sang phi tập trung.

Trong trường hợp của tôi, tôi đã lưu ý rằng một số tên bảng đa năng (*) cũ (theo mặc định SQLMETAL thêm ký tự " s " ở cuối bảng) tham chiếu đến các lớp được tạo bởi SQLMETAL.

Vì gần đây tôi đã tắt tính năng Đa dạng hóa tên , sau khi tạo lại một số lớp liên quan đến cơ sở dữ liệu, một số lớp trong số chúng đã mất tiền tố " s ". Do đó, tất cả các tham chiếu đến các lớp bảng bị ảnh hưởng đều trở nên không hợp lệ. Vì lý do này, tôi có một số lỗi biên dịch như sau:

'xxxx' không chứa định nghĩa cho 'TableNames' và không có phương thức mở rộng nào 'TableNames' chấp nhận đối số đầu tiên của kiểu 'yyyy' (bạn đang thiếu chỉ thị using hay tham chiếu hợp ngữ?)

Như bạn đã biết, tôi chỉ nhận lỗi để ngăn một assembly biên dịch. Và đó là phần còn thiếu có thể liên kết với các tập hợp phụ thuộc, khiến không thể tìm thấy "Tệp siêu dữ liệu 'XYZ' ban đầu"

Sau khi sửa các tham chiếu của bảng lớp bị ảnh hưởng theo cách thủ công đến tên hiện tại của chúng (không tập trung), tôi đã có thể đưa dự án của mình trở lại hoạt động!

(*) Nếu tùy chọn Visual Studio> menu Công cụ > Tùy chọn > Công cụ cơ sở dữ liệu > Trình thiết kế O / R > Đa năng hóa tên được bật, một số trình tạo mã SQLMETALl sẽ thêm ký tự " s " vào cuối một số lớp bảng được tạo, mặc dù bảng có không có hậu tố "s" trên cơ sở dữ liệu đích. Để biết thêm thông tin, vui lòng tham khảo http://msdn.microsoft.com/en-us/library/bb386987(v=vs.110).aspx

Hy vọng nó giúp!


1
Cảm ơn nhận xét của bạn, Nhưng tôi không sử dụng bất kỳ công cụ tạo mã cơ sở dữ liệu nào. Và tôi đã đăng những gì giải quyết được vấn đề. Nhưng ai biết được, câu trả lời của bạn có thể giúp ích cho nhân viên Google ...
Avi Turner

@Julio câu trả lời của bạn đã giúp tôi. Tôi đã bị như vậy trong quá khứ và quên sửa chữa là gì. Tôi đã xem qua câu trả lời của bạn cho câu hỏi này và mặc dù không phải tình huống chính xác của tôi, nhưng nó đủ để kích hoạt trí nhớ của tôi. Tôi đang sử dụng db Entity Framework đầu tiên khi bật đa năng hóa và thỉnh thoảng tôi gặp phải vấn đề này vì một trong các bảng của tôi có tên số nhiều trong khi tất cả các bảng khác đều là số ít.
user1843640

2

Tôi đã xuất hiện lỗi này. Tôi đã làm theo tất cả các giải pháp ở đây nhưng không có gì hiệu quả. Tôi đang sử dụng Visual Studio 2013 Professional. Tôi không thể làm cho các bản dựng lại dự án riêng lẻ hoạt động và cuối cùng tôi đã phát hiện ra có một sự phụ thuộc vòng tròn trong các tài liệu tham khảo của tôi. Visual Studio thực hiện một công việc khá tốt bình thường là cảnh báo bạn nếu bạn đang thêm một tham chiếu đến một thứ gì đó tham chiếu ngược lại, nhưng vì một số lý do mà nó không có trong trường hợp này. Tôi đã thêm một tham chiếu đến một dự án tham chiếu đến dự án mà tôi đang làm - và nó đã chấp nhận nó. Có lẽ lỗi VS?


2

5 xu của tôi.

Vấn đề này bắt đầu sau một giải pháp sạch.

Tôi đã cố gắng khắc phục sự cố bằng cách đặt cấu hình Giải pháp Hoạt động trong: Xây dựng -> Trình quản lý cấu hình để phát hành. Sau đó, xây dựng và đặt nó trở lại để gỡ lỗi một lần nữa. Việc xây dựng thành công sau đó.


2

Đóng VS, định vị và xóa thư mục 'gói' từ bên ngoài studio trực quan. Khởi động lại VS và xây dựng -> tất cả các phụ thuộc được cài đặt lại


2

Visual Studio 2019 Community 16.3.10
Tôi đã gặp sự cố tương tự với bản phát hành. Bản dựng gỡ lỗi đang được biên dịch mà không gặp bất kỳ sự cố nào. Hóa ra vấn đề là do OneDrive. Nhiều khả năng người ta có thể gặp sự cố tương tự với bất kỳ ổ đĩa được sao lưu hoặc dịch vụ đám mây nào.

Tôi đã làm sạch mọi thứ theo câu trả lời tuyệt vời của Avi Turner.

Ngoài ra, tôi đã xóa thủ công thư mục \ obj \ Release khỏi thư mục OneDrive của mình, đồng thời đăng nhập vào OneDrive bằng trình duyệt và xóa thư mục đó cũng để ngăn OneDrive tải lại phiên bản đám mây khi biên dịch.
Sau đó được xây dựng lại và mọi thứ hoạt động như bình thường.


1

điều này xảy ra do sự khác biệt của tên trong tên thư mục và tên không gian tên. Nếu bạn tạo một vùng tên bằng một tên nào đó và sau này bạn đổi tên nó thì vùng tên đó sẽ có tên cũ. Và quá trình biên dịch sẽ đi theo đường dẫn cũ để tìm .dll.exetập tin. Để tránh điều này, hãy mở .csprojtệp của từng vùng tên bằng tệp văn bản và tìm đường dẫn cũ trong tệp.

loại bỏ điều này, làm sạch và xây dựng lại giải pháp. Điều này đã làm việc cho tôi. Tôi đã dành cả ngày để giải quyết vấn đề này.


1

Tôi đã gặp sự cố này và đã quản lý để khắc phục bằng cách sử dụng câu trả lời SO này: Không thể tìm thấy tệp siêu dữ liệu '.dll'

Tôi đã phải bỏ chọn tất cả các hộp, nhấp vào Áp dụng, bật lại tất cả các hộp kiểm và sau đó nhấp lại vào áp dụng, nhưng nó đã khắc phục được sự cố.


1

Tôi vừa gặp phải vấn đề này và sau một giờ xoay sở, nhận ra rằng tôi đã thêm tệp aspx vào sản phẩm của mình có cùng tên với một trong các lớp Linq-To-Sql của tôi .
Lớp và Trang nơi "Hàng đợi".
Đã thay đổi trang thành QueueMgr.aspx và mọi thứ được xây dựng tốt.


0

Đối với bản dựng mới, có thể một số phụ thuộc chưa được cài đặt. Đối với tôi, đó là Crystal Reports.


0

Nó xảy ra khi một dll dự án không thành công và điều đó được tham chiếu bởi số lượng dự án. Vì vậy, trước tiên hãy sửa chữa nó và sau đó Xây dựng các cá nhân.


Điều đó không đúng. Nếu đúng như vậy, dự án sẽ không biên dịch và chạy, nhưng các vấn đề xuất hiện trong thời gian chạy. Ngoài ra, như tôi đã đề cậpMy code is compiling and running.
Avi Turner

Tôi đọc bình luận 16 và làm theo nó khi tôi đang gặp khó khăn trong một thời gian. May mắn thay, tôi nhận ra một dự án dll được gọi là PDIAPI đang thất bại do mã sai và phải sửa nó. Sau khi biên dịch thành công, tôi đã biên dịch các dự án tham khảo. Nó đã cho tôi thành công. Tôi nghĩ điều này cũng có thể giúp những người khác.
Muzammil Tamboli

0

Tôi đã gặp sự cố này và nó đã bắt đầu sau khi nhập giải pháp của chúng tôi vào TFS như một dự án mới. Tôi đã xem qua chủ đề này và tìm ra giải pháp nhanh chóng với một số cảm hứng từ câu trả lời của bạn.

Tất cả những gì tôi cần làm là xây dựng lại dự án được cho là bị mất tệp siêu dữ liệu và thì đấy, vấn đề đã được giải quyết.


0

Cũng có một lý do ngớ ngẩn khác mà bạn nên kiên nhẫn kiểm tra ... như nó đã xảy ra với tôi sau khi lãng phí 4 giờ tìm kiếm câu trả lời:

Câu chuyện với tôi là tôi đã vô tình thay đổi một dòng mã nhỏ trong số hàng nghìn tệp lớp c # và sau đó cố gắng xây dựng lại giải pháp. Như bạn có thể tưởng tượng, tôi đã kết thúc với hơn 40 lỗi thiếu tệp dữ liệu meta và với 1 lỗi biên dịch trong số đó - mà tôi đã không kiểm tra cẩn thận, hoàn toàn nghĩ rằng tất cả các lỗi đều giống nhau!

sau 4 giờ tìm kiếm và sau đó vô tình kiểm tra lại danh sách lỗi của mình, tôi đã tìm thấy lỗi mã ngớ ngẩn đó, đã sửa nó, biên dịch và sau đó lỗi biến mất.

Không phải là một câu trả lời tốt cho vấn đề của bạn, nhưng tôi hy vọng trường hợp của tôi không giống với trường hợp của bạn.


0

Tôi đã từng gặp vấn đề tương tự. Trong trường hợp của tôi, tôi đã nhầm lẫn, tôi đã đặt tất cả các dự án ngoài dự án bằng phương thức chính là ứng dụng bàn điều khiển.

Để giải quyết, tôi đã đi đến mọi dự án khác với dự án có chức năng chínhnhấp chuột phải> properites> loại đầu ra> thư viện lớp


0

nó đã xảy ra với tôi bởi vì tôi có một cuộc đụng độ kỳ lạ trong các không gian tên: Tôi có AssemblyA với không gian tên AssemblyA. Phù thủy không gian tên miền định nghĩa ClassA và trong cùng một tập hợp không gian tên khác có tên AssemblyA.ParentNamespace.ChildNamespace phù thủy định nghĩa một ClassA khác (nhưng với cùng tên)

Sau đó tôi đã có trong AssemblyA.ParentNamespace IInterfaceB phù thủy có một phương thức mà ngay từ đầu trả về IEnumerable và phù thủy ClassB triển khai IInterfaceB

Sau đó, tôi đã sửa đổi phương thức trong ClassB để trả về IEnumerable nhưng tôi đã quên cập nhật định nghĩa IInterfaceB, vì vậy phương pháp vẫn trả về IEnumerable, thực tế thú vị là giải pháp vẫn tuân thủ nếu tôi đã xây dựng lại tất cả, nhưng các phép thử đề cập đến AssemblyA không hoạt động và trả về lỗi "Không thể tìm thấy tệp siêu dữ liệu".

cập nhật InterfaceB để trả về IEnumerable một cách chính xác như trình triển khai ClassB của nó đã giải quyết vấn đề, rất tiếc thông báo lỗi rất mơ hồ và thực tế là quá trình biên dịch đã hoạt động khiến tôi cho rằng có thể có thứ gì đó cần sửa trong trình biên dịch


0

Một đồng nghiệp đang gặp sự cố này và nguyên nhân đang lẩn tránh chúng tôi. Cuối cùng, chúng tôi nhận ra rằng thư mục dự án (và do đó là đường dẫn đến các gói NuGet) có chứa %20(cảm ơn, một số công cụ Git gui sẽ không được đặt tên) và các thông báo lỗi cho thấy rằng trình biên dịch đang tìm kiếm một đường dẫn trông rất giống nhưng một mà phải %20, đúng hơn là một không gian. Rõ ràng một cái gì đó trong hệ thống xây dựng ở đâu đó thực hiện giải mã HTML trên các đường dẫn hệ thống tệp cục bộ.

Đã đổi tên thư mục bản sao làm việc và mọi thứ bắt đầu hoạt động.


0

Tôi cũng có vấn đề này.

Nó bắt đầu sau khi tôi thu dọn thư mục nhỏ trong dự án của mình. Sau đó tôi đã cố gắng biên dịch và gặp nhiều lỗi lớp trùng lặp. (mặc dù chúng không bị trùng lặp. Tôi nghĩ rằng liên kết không ổn)

Khi kiểm tra các lỗi này, tất cả các lỗi sẽ biến mất chỉ còn lại lỗi "Không tìm thấy tệp siêu dữ liệu ... debug \ application.exe".

Tôi đã giải quyết vấn đề này bằng cách xem trong cửa sổ đầu ra của bản dựng để tìm các lớp nào đã bị trùng lặp.

Sau đó tôi sẽ nhấp chuột phải vào tên lớp và "đi đến định nghĩa".

sẽ có hai định nghĩa để chọn, hãy mở cả hai, định nghĩa thứ hai dường như sẽ mở lại cùng một tệp, tuy nhiên định nghĩa thứ hai sẽ xác định là nguồn lỗi (gạch dưới màu đỏ).

Xóa tất cả mã ra khỏi tệp và lưu (Điều này sẽ không ảnh hưởng đến tệp thực của bạn).
Điều này bây giờ sẽ biên dịch chính xác.


Cũng xảy ra với tôi - tôi đã thay đổi chữ ký của một phương thức trong một lớp bằng cách thêm một tham số, đặt nó một giá trị mặc định nhưng không cập nhật giao diện.
MarkD

0

Đảm bảo rằng không có khoảng trống trong đường dẫn đến dự án của bạn ...

Tôi đang sử dụng Windows 10 với Visual Studio Community 2019 và tôi đang sao chép một giải pháp đa dự án giống như nó từ kho lưu trữ GIT. Tôi đã gặp lỗi này với tất cả các phụ thuộc khác trong giải pháp cùng với E_POINTER lỗi . Đường dẫn của nó, được kế thừa từ GIT, có các khoảng trắng như C: / repos / TÊN DỰ ÁN CỦA TÔI / ...

Tôi đã xóa nó, sao chép nó một lần nữa và đảm bảo rằng đường dẫn của nó không chứa khoảng trắng như C: / repos / MY_PROJECT_NAME / ...

Điều đó đã khắc phục sự cố của tôi.


0

Tôi cũng có vấn đề tương tự.

Trong trường hợp của tôi, gần đây tôi đã thêm một lớp nội bộ vào một nơi nào đó trong dự án. Một trong những phụ thuộc trong giải pháp có cùng tên lớp và cả hai đều được thêm đúng vào tham chiếu.

Tôi đã thay đổi hoạt động cuối cùng của mình và xây dựng lại, nó hoạt động.

Đảm bảo rằng thông báo trình biên dịch của bạn hợp lệ. Trong trường hợp của tôi, tôi bắt gặp lỗi tham chiếu từ đó, không được liệt kê là lỗi trong Danh sách 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.