VS 2017 Metadata file '.dll could not be found

C#asp.net MvcMetadataVisual Studio-2017

C# Problem Overview


I know there is another question with exact the same problem, but I went trough all those answers, and none helped me. :( (This was the question.)

I just created a new ASP.NET MVC project and joined a few '.dll's in the solution. Now when I try to build the project I get the error message shown below on 3 of the 5 libraries.

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

When I go to the bin\debug folder of that .dll, I see that it is empty, and the other .dll where I do not get an error message, is not empty. But I am clueless how to fix this or what I did to make this happen.

The most common answer is to go to the properties of the solution and go to configuration and uncheck -> apply -> check and apply again, but that didn't work

C# Solutions


Solution 1 - C#

The problem was that I had some other normal error messages in my project, and apparently after I fixed those and when I cleaned and built my project AGAIN, then all .dlls succeeded.

Make sure you don't have any other error messages in your project and if you do, fix those first!

Solution 2 - C#

Steps in Fixing this Error: MetaData File .dll could not be found.

  1. Clean All Projects.

  2. Unload All Projects.

  3. Reload All Projects.

  4. ReBuild Solution.

Then problem solved.

Solution 3 - C#

In my case, there was an error, but it was not properly parsed out by VS and shown in the "Error List" window. To find it, you much view the ol "Output" from build window and parse through the messages starting from top down and resolve the actual error. M$, please fix! This is a huge waste of time of the worlds collective developers.

Solution 4 - C#

Double check the name of your project folder. In my case my project folder was named with spaces in it. When I cloned the project from Team Foundation Server using git bash the spaces in the folder name were converted to: "%20". Changing those back to spaces fixed the problem for me.

Solution 5 - C#

I had this issue with a solution containing multiple projects.

It came from duplicating a .csproj and adding the copy to the solution. A .csproj file contains a <ProjectGuid> element. I set the GUID of the copied project to a new one.

Update: Which GUID you use doesn't matter, it just needs to be different from the other project's GUID. You can create a new GUID from within Visual Studio: Tools -> Create GUID and copy the part between the curly brackets, i.e. {...}. Use that as the new value for the <ProjectGuid> element.

I also performed the following steps (not neccessarily neccessary, but they don't hurt):

  1. Close the solution
  2. Delete bin folder
  3. Delete all obj folders
  4. Open solution and build

Solution 6 - C#

I fix this problem following this steps:

  1. Clean Solution
  2. Close Visual Studio
  3. Deleting /bin from the project directory
  4. Restart Visual Studio
  5. Rebuild Solution

Solution 7 - C#

Another thing that you should check is the Target Framework of any referenced projects to make sure that the calling project is using the same or later version of the framework.

I had this issue, I tried all of the previously suggested answers and then on a hunch checked the frameworks. One of projects being referenced was targeting 4.6.1 when the calling project was only 4.5.2.

Solution 8 - C#

I have the same problem, the problem was that solution path have spaces in the name and vs for some reason not resolve the package... download my repository again just renaming the solution with out spaces in the name.

e.g:

/Repo/Project Name/src

should be

/Repo/ProjectName/src

Solution 9 - C#

For me cleaning and building didn't work. Unloading the project didn't work. Restarting Visual Studio or even the pc didn't work. This is what did work:

Go to each of the projects that are throwing the error, and in References, delete the reference to the problematic project and add it again. That solves the issue.

The problem seems to be related to moving a project around (Move it inside a folder for example), then a different project that references it, have its path wrong and can't find it.

Solution 10 - C#

I had the same problem, even with no other errors showing on the "Error List" view after "Rebuild Solution". However, on the "Output" view, I saw the error that was behind the issue:

The primary reference "C:...\myproj.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.6.1" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.5"

Once I corrected this, the issue was resolved.

Solution 11 - C#

What worked for me:

Package Manager Console (Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

Rebuild solution.

Solution 12 - C#

Running this command in bash to delete all bins worked for me

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

Can't guarantee it'll work for anyone else though

Also be aware it'll delete all bin files -so you will have to rebuild all projects. Obviously best to cd into the relevant directory before using it.

Solution 13 - C#

Cleaning my solution caused this problem with Visual Studio 2017. Unloading/reloading projects or more cleaning made no difference. Only thing that worked was closing and restarting Visual Studio.

Solution 14 - C#

Check all the projects are loaded. In my case one of the project was unloaded and reloading the project clears the errors.

Solution 15 - C#

In my case, I had to open the .csproj file and add the reference by hand, like this (Microsoft.Extensions.Identity.Stores.dll was missing):

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

Solution 16 - C#

Close Visual Studio, find the solution's .suo file, delete it, reopen Visual Studio.

Solution 17 - C#

I have build 10 projects out of 25 projects in solution individually one by one based on dependencies. Then build the solution. It fixed for me

Solution 18 - C#

In my case I was facing same error. One of my project solution was referring an assembly from different NuGet location. I just changed it to correct location to solve this error and rebuild. and wow the project get build successfully and all other error gone away.

Solution 19 - C#

I had this same error. In my case I had built a library (call it commsLibrary) that referenced other libraries by including them as projects in my solution. Later, when I built a project and added my commsLibrary, whenever I would build I got the metadata file cannot be found error. So I added the libraries that my comms library referenced to the current project, then it was able to build.

Solution 20 - C#

After facing so many troubles, here is the solution that I found.

  1. open your project folder.
  2. find Your_Project_Name.csproj[Visual C# Project file (.csproj)]
  3. open that file in any text editor and find your missing file ItemGroup.

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

  1. remove that ItemGroup and open once again your project and build
  2. If that reference is important for you then add once again.

Solution 21 - C#

I had the same problem and i tried solutions from https://stackoverflow.com/questions/1421862/metadata-file-dll-could-not-be-found

but none of these worked.

So after trial and error i fixed it by unloading and reloading the project doing this reset the configuration file and fixed the issue.

Solution 22 - C#

This issue happens when you renamed your solution and the .net framework cannot find the old solution.

To resolve this, you need to find and replace the old name of solution and all dependencies on it with the new name. If you need to browse the physical file through file explorer do so.

The files that are normally affected are AssemblyInfo.cs, .sln an Properties > Application > Assembly name and Default namespace. Make sure to update them with the new name.

Open the file explorer, if the folder with the old name still exists, you need to delete it. Then clean and build the solution until the error is gone. (If needed clean and build the project one by one especially the affected project.)

Solution 23 - C#

I had the same issue. My problem was someone else on the team moved a class folder, and the project was looking for it.

For me, there were 44 errors; 43 ended in .dll (searching for a dependency) and the first one in the error list ended with .cs (searching for the actual class). I tried clean-build, and clean, unload, reload, build, but nothing working. I ended up locating the class in the project, and just deleted it, as it was showing up as unavailable anyways, followed by a clean-build.

That did the trick for me! Hope this helps.

Solution 24 - C#

I had 2 files (and 2 classes) in the same project with the same name.

Solution 25 - C#

In my case, I deleted one file directly from team explorer git menu which was causing this problem. When I checked solution explorer it was still showing the deleted file as unreferenced file. When I removed that file from solution explorer, I was able to build project successfully.

Solution 26 - C#

For me what worked was:

Uninstall and then reinstall the referenced Nuget package that has the error.

Solution 27 - C#

In my case I run the tests and got error CS0006. It turned out that I run tests in Release mode. Switch to Debug mode fixed this error.

Solution 28 - C#

In my case the issue was, I was referencing a project where I commented out all the .cs files.

For example ProjectApp references ProjectUtility. In ProjectUtility I only had 1 .cs file. I wasn't using it anymore so I commented out the whole file. In ProjectApp I wasn't calling any of the code from ProjectUtility, but I had using ProjectUtility; in one of the ProjectApp .cs files. The only error I got from the compiler was the CS0006 error.

I uncommented the .cs file in ProjectUtility and the error went away. So I'm not sure if having no code in a project causes the compiler to create an invalid assembly or not generate the DLL at all. The fix for me was to just remove the reference to ProjectUtility rather than commenting all the code.

In case you were wondering why I commented all the code from the referenced project instead of removing the reference, I did it because I was testing something and didn't want to modify the ProjectApp.csproj file.

Solution 29 - C#

After working through a couple of issues in dependent projects, like the accepted answer says, I was still getting this error. I could see the file did indeed exist at the location it was looking in, but for some reason Visual Studio would not recognize it. Rebuilding the solution would clear all dependent projects and then would not rebuild them, but building individually would generate the .dll's. I used msbuild <project-name>.csproj in the developer PowerShell terminal in Visual Studio, meaning to get some more detailed debugging information--but it built for me instead! Try using msbuild against persistant build errors; you can use the --verbosity: option to get more output, as outlined in the docs.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionSvenmarimView Question on Stackoverflow
Solution 1 - C#SvenmarimView Answer on Stackoverflow
Solution 2 - C#rjay dadulaView Answer on Stackoverflow
Solution 3 - C#ebol2000View Answer on Stackoverflow
Solution 4 - C#roscoeleeView Answer on Stackoverflow
Solution 5 - C#j00hiView Answer on Stackoverflow
Solution 6 - C#Lucas PrestesView Answer on Stackoverflow
Solution 7 - C#RobView Answer on Stackoverflow
Solution 8 - C#D__View Answer on Stackoverflow
Solution 9 - C#David PerezView Answer on Stackoverflow
Solution 10 - C#IanView Answer on Stackoverflow
Solution 11 - C#s3cView Answer on Stackoverflow
Solution 12 - C#Yair HalberstadtView Answer on Stackoverflow
Solution 13 - C#John81View Answer on Stackoverflow
Solution 14 - C#MaryamView Answer on Stackoverflow
Solution 15 - C#toutecrimsonView Answer on Stackoverflow
Solution 16 - C#Graham LaightView Answer on Stackoverflow
Solution 17 - C#Siva SankaranView Answer on Stackoverflow
Solution 18 - C#Mukesh KumarView Answer on Stackoverflow
Solution 19 - C#Joseph MawerView Answer on Stackoverflow
Solution 20 - C#Abhishek ShingadiyaView Answer on Stackoverflow
Solution 21 - C#Amad MalikView Answer on Stackoverflow
Solution 22 - C#John Carlo DiocadizView Answer on Stackoverflow
Solution 23 - C#BurkeView Answer on Stackoverflow
Solution 24 - C#JohnBView Answer on Stackoverflow
Solution 25 - C#p4ulinuxView Answer on Stackoverflow
Solution 26 - C#AndrewView Answer on Stackoverflow
Solution 27 - C#izimikyView Answer on Stackoverflow
Solution 28 - C#iheartcsharpView Answer on Stackoverflow
Solution 29 - C#NerdyGingerView Answer on Stackoverflow