Không tìm thấy tệp siêu dữ liệu VS 2017 '.dll


86

Tôi biết có một câu hỏi khác có cùng vấn đề chính xác, nhưng tôi đã đánh lừa tất cả những câu trả lời đó và không câu nào giúp được tôi. :( ( Đây là câu hỏi. )

Tôi vừa tạo một dự án ASP.NET MVC mới và tham gia một vài '.dll's vào giải pháp. Bây giờ khi tôi cố gắng xây dựng dự án, tôi nhận được thông báo lỗi hiển thị bên dưới trên 3 trong số 5 thư viện.

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

Khi tôi đi tới thư mục bin \ debug của .dll đó, tôi thấy rằng nó trống và .dll khác mà tôi không nhận được thông báo lỗi, không trống. Nhưng tôi không biết làm thế nào để khắc phục điều này hoặc những gì tôi đã làm để biến điều này thành hiện thực.

Câu trả lời phổ biến nhất là đi đến các thuộc tính của giải pháp và đi đến cấu hìnhbỏ chọn -> áp dụng -> kiểm traáp dụng lại, nhưng điều đó không hoạt động


Chỉ là phỏng đoán, nhưng có vẻ như VS đã làm sạch chúng. Tôi không chắc đó là gì hoặc chúng đến từ đâu, nhưng nếu bạn là người tạo ra chúng, tôi sẽ đảm bảo rằng bất kỳ giải pháp nào họ đang có đều được xây dựng. Nếu những thư mục này là từ những gì giải pháp hiện tại của bạn đang xây dựng thì nó sẽ không tìm thấy chúng sau khi bạn làm sạch lại giải pháp của mình.
TheNoob

Làm sạch ^ xây dựng lại || khởi động lại hình ảnh của bạn, kiểm tra lại
Asif Raza

@AsifRaza Tôi đã làm điều đó rất nhiều lần rồi, nhưng hãy suy nghĩ với tôi :)
Svenmarim

1
@TheNoob Vì vậy, bạn nói tôi cần thử và làm sạch giải pháp của mình và sau đó xây dựng nó? bởi vì tôi đã thử điều đó
Svenmarim

xóa tất cả các từ thư mục bin, sau đó xây dựng lại ^ séc
Asif Raza

Câu trả lời:


121

Vấn đề là tôi có một số thông báo lỗi bình thường khác trong dự án của mình và dường như sau khi tôi sửa những thông báo đó và khi tôi dọn dẹp và xây dựng dự án LẠI, thì tất cả .dlls đều thành công.

Đảm bảo rằng bạn không có bất kỳ thông báo lỗi nào khác trong dự án của mình và nếu có, hãy sửa chúng trước!


6
Tôi thực sự đã gặp vấn đề tương tự, nhưng không có lỗi nào khác hiển thị, chỉ có 1 lỗi về thiếu .dll. Nhưng rồi tại một thời điểm nào đó (mà tôi không thay đổi bất kỳ mã nào), đột nhiên xuất hiện một lỗi cú pháp mà trước đó không hiển thị. Sau khi tôi sửa lỗi đó, sau đó như bạn nói, tôi đã làm sạch, xây dựng lại và mọi thứ đều hoạt động.
jbyrd

23
Vấn đề tương tự ở đây. Dường như có một lỗi trong cửa sổ Danh sách Lỗi, nơi mà các lỗi đôi khi không hiển thị (và những lần khác, các lỗi đã được sửa vẫn tiếp tục hiển thị, mặc dù đã thực hiện dọn dẹp / xây dựng lại). Cửa sổ Đầu ra đáng tin cậy hơn vì vậy hãy kiểm tra ở đó khi bạn gặp sự cố này.
Santosh

1
Tôi nhận thấy rằng tôi phải bật cảnh báo trong tab "danh sách lỗi" của mình trong studio trực quan. Đó là trong các cảnh báo mà tôi thấy rằng không thể giải quyết .dll được tham chiếu. Tôi đã phải xóa tham chiếu hiện có và thêm một tham chiếu mới vào đúng thư mục. Bây giờ tất cả là tốt.
user1431072 11/04

xem nhận xét của tôi ở trên, nhưng về cơ bản, điều tương tự ngoại trừ một số lỗi trong VS đã ngăn lỗi hiển thị cho đến khi tôi bỏ chọn / kiểm tra tùy chọn Xây dựng trong các trang thuộc tính Giải pháp.
cướp

1
Đây là câu trả lời duy nhất thực sự giúp ích cho tôi. Tuyệt vời! Cảm ơn!
ɐsɹǝʌ ǝɔıʌ

34

Các bước khắc phục lỗi này: Không thể tìm thấy tệp MetaData .dll.

  1. Làm sạch tất cả các dự án.

  2. Dỡ tất cả các dự án.

  3. Tải lại tất cả các dự án.

  4. Giải pháp ReBuild.

Sau đó, vấn đề được giải quyết.


Điều này thực sự đã sửa chữa trường hợp của tôi.
Vu Nguyen

dỡ hàng và xếp lại là chìa khóa đối với tôi. tôi đã dành một thời gian dài cho vấn đề này cho đến khi làm điều đó!
ikariw

15

Trong trường hợp của tôi, đã xảy ra lỗi nhưng VS không phân tích cú pháp đúng cách và hiển thị trong cửa sổ "Danh sách lỗi". Để tìm nó, bạn có thể xem "Đầu ra" từ cửa sổ xây dựng và phân tích cú pháp thông qua các thông báo bắt đầu từ trên xuống và giải quyết lỗi thực tế. M $, xin vui lòng sửa chữa! Đây là một sự lãng phí thời gian rất lớn của các nhà phát triển tập thể thế giới.


1
Điều này giải quyết vấn đề cho tôi. Đã thử tất cả các giải pháp khác, nhưng cửa sổ đầu ra cho tôi thấy dự án của tôi đang được xây dựng dựa trên netframework 4.7.2, cao hơn netframework khung mục tiêu 4.6. Chỉ cần chỉnh sửa .csjproj thành điểm 4,6.
Calum Mullen

11

Kiểm tra kỹ tên của thư mục dự án của bạn. Trong trường hợp của tôi, thư mục dự án của tôi được đặt tên với khoảng trắng trong đó. Khi tôi sao chép dự án từ Máy chủ Team Foundation bằng cách sử dụng git bash, khoảng trắng trong tên thư mục được chuyển đổi thành: "% 20". Việc thay đổi chúng trở lại khoảng trắng đã khắc phục sự cố cho tôi.


2
Vấn đề tương tự, vì STUPID VSTS.
Arsen Khachaturyan

2
Đây là lý do chính xác cho lỗi trên. Cảm ơn vì tiền hỗ trợ. nó làm việc
user3785553

9

Tôi gặp sự cố này với một giải pháp chứa nhiều dự án.

Nó đến từ việc sao chép .csproj và thêm bản sao vào giải pháp. Một csproj tập tin chứa một <ProjectGuid>phần tử. Tôi đặt GUID của dự án đã sao chép thành một cái mới.

Cập nhật: Bạn sử dụng GUID nào không quan trọng, nó chỉ cần khác với GUID của dự án khác. Bạn có thể tạo GUID mới từ bên trong Visual Studio: Tools -> Create GUIDvà sao chép phần giữa dấu ngoặc nhọn, tức là {...}. Sử dụng đó làm giá trị mới cho <ProjectGuid>phần tử.

Tôi cũng đã thực hiện các bước sau (không bắt buộc phải làm, nhưng chúng không đau):

  1. Đóng giải pháp
  2. Xóa thư mục bin
  3. Xóa tất cả các thư mục obj
  4. Giải pháp mở và xây dựng

6

Tôi khắc phục sự cố này theo các bước sau:

  1. Giải pháp sạch
  2. Đóng Visual Studio
  3. Xóa / bin khỏi thư mục dự án
  4. Khởi động lại Visual Studio
  5. Giải pháp xây dựng lại

1
Cảm ơn bạn, sau 5 giờ tìm kiếm và thử, giải pháp của bạn đã cứu tôi :)
Masoud

3

Tôi gặp vấn đề tương tự, vấn đề là đường dẫn giải pháp có khoảng trắng trong tên và vì lý do nào đó không giải quyết được gói ... tải xuống kho lưu trữ của tôi một lần nữa chỉ đổi tên giải pháp mà không có dấu cách trong tên.

ví dụ:

/Repo/Project Name/src

nên là

/Repo/ProjectName/src

Ở đây cũng vậy, nhưng tôi có %20tên thư mục.
Wojtek Turowicz

3

Đối với tôi, việc dọn dẹp và xây dựng không hoạt động. Việc dỡ bỏ dự án không hoạt động. Khởi động lại Visual Studio hoặc thậm chí máy tính không hoạt động. Đây là những gì đã hoạt động:

Đi tới từng dự án đang gặp lỗi và trong Tài liệu tham khảo, xóa tham chiếu đến dự án có vấn đề và thêm lại. Điều đó giải quyết vấn đề.

Vấn đề dường như liên quan đến việc di chuyển một dự án xung quanh (Ví dụ: Di chuyển nó vào bên trong một thư mục), sau đó một dự án khác tham chiếu đến nó, có đường dẫn sai và không thể tìm thấy nó.


Tôi đã thay đổi thư mục của các dự án của mình gây ra sự cố không xây dựng dll bằng cách sử dụng xây dựng lại tất cả và câu trả lời này khắc phục sự cố của tôi.
Alain Elemia

3

Tôi đã gặp vấn đề tương tự, ngay cả khi không có lỗi nào khác hiển thị trên chế độ xem "Danh sách lỗi" sau "Giải pháp xây dựng lại". Tuy nhiên, ở chế độ xem "Đầu ra", tôi đã thấy lỗi đằng sau sự cố:

Không thể giải quyết tham chiếu chính "C: ... \ myproj.dll" vì nó được xây dựng dựa trên khuôn khổ ".NETFramework, Version = v4.6.1". Đây là phiên bản cao hơn khung hiện được nhắm mục tiêu ".NETFramework, Version = v4.5"

Sau khi tôi sửa lỗi này, sự cố đã được giải quyết.


2

Một điều khác mà bạn nên kiểm tra là Khung mục tiêu của bất kỳ dự án được tham chiếu nào để đảm bảo rằng dự án đang gọi đang sử dụng cùng một phiên bản hoặc phiên bản mới hơn của khung.

Tôi gặp sự cố này, tôi đã thử tất cả các câu trả lời được đề xuất trước đó và sau đó linh cảm đã kiểm tra các khuôn khổ. Một trong những dự án đang được tham chiếu là nhắm mục tiêu 4.6.1 khi dự án đang gọi chỉ là 4.5.2.


Điều tương tự ở đây.
Anthony Queen

2

Chạy lệnh này trong bash để xóa tất cả các thùng hoạt động với tôi

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

Không thể đảm bảo rằng nó sẽ hoạt động với bất kỳ ai khác

Cũng lưu ý rằng nó sẽ xóa tất cả các tệp bin - do đó bạn sẽ phải xây dựng lại tất cả các dự án. Rõ ràng là tốt nhất để cd vào thư mục có liên quan trước khi sử dụng nó.


2

Giải pháp dọn dẹp của tôi đã gây ra sự cố này với Visual Studio 2017. Việc dỡ bỏ / tải lại các dự án hoặc dọn dẹp nhiều hơn không có gì khác biệt. Điều duy nhất hoạt động là đóng và khởi động lại Visual Studio.


Tương tự trong VS 2019: Bạn chỉ cần đóng VS và mở lại giải pháp.
Heri

2

Kiểm tra tất cả các dự án đã được tải. Trong trường hợp của tôi, một trong các dự án đã được dỡ bỏ và tải lại dự án sẽ xóa các lỗi.


2

Trong trường hợp của tôi, tôi phải mở tệp .csproj và thêm tham chiếu bằng tay, như thế này (thiếu Microsoft.Extensions.Identity.Stores.dll):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.extensions.identity.stores\2.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>

2

Đóng Visual Studio, tìm tệp .suo của giải pháp, xóa nó, mở lại Visual Studio.


2

Điều gì đã làm việc cho tôi:

Bảng điều khiển Trình quản lý Gói (Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

Giải pháp xây dựng lại.


1

Trong trường hợp của tôi, tôi đã gặp phải lỗi tương tự. Một trong những giải pháp dự án của tôi là giới thiệu một lắp ráp từ các vị trí NuGet khác nhau. Tôi chỉ thay đổi nó thành vị trí chính xác để giải quyết lỗi này và xây dựng lại. và wow dự án được xây dựng thành công và tất cả các lỗi khác đã biến mất.


1

Tôi đã có cùng một lỗi. Trong trường hợp của tôi, tôi đã xây dựng một thư viện (gọi nó là commsLibrary) tham chiếu đến các thư viện khác bằng cách đưa chúng làm dự án trong giải pháp của tôi. Sau đó, khi tôi xây dựng một dự án và thêm commsLibrary của mình , bất cứ khi nào tôi xây dựng, tôi đều gặp lỗi không thể tìm thấy tệp siêu dữ liệu. Vì vậy, tôi đã thêm các thư viện mà thư viện comms của tôi tham chiếu đến dự án hiện tại, sau đó nó có thể xây dựng.


1

Sau khi đối mặt với rất nhiều rắc rối, đây là giải pháp mà tôi đã tìm thấy.

  1. mở thư mục dự án của bạn.
  2. tìm Your_Project_Name.csproj [tệp Dự án Visual C # (.csproj)]
  3. mở tệp đó trong bất kỳ trình soạn thảo văn bản nào và tìm tệp còn thiếu ItemGroup của bạn.

    <ItemGroup> <None Include="..." /> </ItemGroup>

  4. xóa ItemGroup đó và mở lại dự án của bạn và xây dựng

  5. Nếu tham chiếu đó quan trọng đối với bạn thì hãy thêm một lần nữa.

1

Tôi đã gặp sự cố tương tự và tôi đã thử các giải pháp từ tệp Siêu dữ liệu '.dll' không thể tìm thấy

nhưng không ai trong số này hoạt động.

Vì vậy, sau khi thử nghiệm và gặp lỗi, tôi đã sửa nó bằng cách dỡ bỏ và tải lại dự án, thực hiện việc này sẽ đặt lại tệp cấu hình và khắc phục sự cố.


1

Tôi đã xây dựng 10 dự án trong số 25 dự án trong giải pháp riêng lẻ từng cái một dựa trên sự phụ thuộc. Sau đó xây dựng giải pháp. Nó đã sửa cho tôi


Đây là giải pháp của tôi
Lasitha

0

Tôi gặp vấn đề tương tự. Vấn đề của tôi là một người khác trong nhóm đã di chuyển một thư mục lớp và dự án đang tìm kiếm nó.

Đối với tôi, có 44 lỗi; 43 kết thúc bằng .dll (tìm kiếm phụ thuộc) và lỗi đầu tiên trong danh sách lỗi kết thúc bằng .cs (tìm kiếm lớp thực). Tôi đã thử xây dựng sạch và dọn dẹp, dỡ bỏ, tải lại, xây dựng, nhưng không có gì hoạt động. Tôi đã kết thúc việc định vị lớp trong dự án và chỉ xóa nó, vì nó luôn hiển thị là không khả dụng, theo sau là một bản dựng sạch.

Điều đó đã đánh lừa tôi! Hi vọng điêu nay co ich.


0

Tôi đã có 2 tệp (và 2 lớp) trong cùng một dự án có cùng tên.


0

Trong trường hợp của tôi, tôi đã xóa một tệp trực tiếp khỏi menu git của nhóm thám hiểm đang gây ra sự cố này. Khi tôi kiểm tra trình khám phá giải pháp, nó vẫn hiển thị tệp đã xóa dưới dạng tệp không được tham chiếu. Khi tôi xóa tệp đó khỏi trình khám phá giải pháp, tôi đã có thể xây dựng dự án thành công.


0

Đối với tôi những gì hiệu quả là:

Gỡ cài đặt và sau đó cài đặt lại gói Nuget được tham chiếu có lỗi.


0

Trong trường hợp của tôi, tôi chạy thử nghiệm và gặp lỗi CS0006. Hóa ra là tôi chạy thử nghiệm ở chế độ Phát hành. Chuyển sang chế độ Gỡ lỗi đã khắc phục lỗi này.


0

Sự cố này xảy ra khi bạn đổi tên giải pháp của mình và khung .net không thể tìm thấy giải pháp cũ.

Để giải quyết vấn đề này, bạn cần tìm và thay thế tên cũ của giải pháp và tất cả các phụ thuộc vào nó bằng tên mới. Nếu bạn cần duyệt tệp vật lý thông qua trình khám phá tệp, hãy làm như vậy.

Các tập tin bị ảnh hưởng thường là AssemblyInfo.cs, .slnmột Properties > Application > Assemblytên và không gian tên mặc định. Đảm bảo cập nhật chúng với tên mới.

Mở trình khám phá tệp, nếu thư mục có tên cũ vẫn tồn tại, bạn cần xóa nó. Sau đó làm sạch và xây dựng giải pháp cho đến khi hết lỗi. (Nếu cần làm sạch và xây dựng từng dự án một, đặc biệt là dự án bị ảnh hưởng.)


0

Trong trường hợp của tôi, vấn đề là, tôi đang tham khảo một dự án mà tôi đã nhận xét tất cả các .cstệp.

Ví dụ ProjectApp tham chiếu ProjectUtility. Trong ProjectUtility, tôi chỉ có 1 .cstệp. Tôi đã không sử dụng nó nữa vì vậy tôi đã nhận xét toàn bộ tệp. Trong ProjectApp, tôi không gọi bất kỳ mã nào từ ProjectUtility, nhưng tôi có using ProjectUtility;trong một trong các .cstệp ProjectApp . Lỗi duy nhất tôi nhận được từ trình biên dịch là lỗi CS0006 .

Tôi đã bỏ ghi chú .cstệp trong ProjectUtility và lỗi đã biến mất. Vì vậy, tôi không chắc liệu không có mã nào trong một dự án khiến trình biên dịch tạo ra một hội đồng không hợp lệ hoặc không tạo ra DLL nào cả. Cách khắc phục đối với tôi là chỉ xóa tham chiếu đến ProjectUtility thay vì nhận xét tất cả mã.

Trong trường hợp bạn đang thắc mắc tại sao tôi nhận xét tất cả mã từ dự án được tham chiếu thay vì xóa tham chiếu, tôi đã làm vậy vì tôi đang thử nghiệm thứ gì đó và không muốn sửa đổi ProjectApp.csprojtệp.

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.