We are upgrading from TFS 2008 to TFS 2012. Majority of our applications are .net 3.5 applications.
We have setup a TFS 2012 environment and went through migration process. When we attempt to build our .net 3.5 applications we are getting the error:
csc error cs0006 metadata file could not be found........
If we take a .net 3.5 application, upgrade it to .net 4.x, then run the build again, it works just fine.
I cannot upgrade every single application I have during this migration. Is there something I might be missing either in the migration or on my build box to support 3.5?
I have VS 2008, 2010, 2012 installed on my build server. I have .net frameworks installed, etc.
Any assistance is helpful.
Max Shmelev
3,7744 gold badges25 silver badges26 bronze badges
asked Jan 23, 2013 at 22:04
1
The project dependencies and project build order can be specified in Visual Studio 2012 by right clicking on the project in the solution explorer and selecting Project Dependencies. By doing this action, your solution file will be fixed. In my case I was able to fix this problem without manually editing the solution files.
answered Jun 12, 2014 at 3:06
1
We get these problems switching between branches (with significant changes). When it happens I recommend the following:
- Close Visual Studio
- Close w3wp.exe instances (paranoid and only if you’re hosting via local IIS)
- Search for and delete all bin and obj folders
- Clean out all intermediate JIT compiled assemblies from C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Files
Following this set of will do what «Clean solution» should do, but doesn’t. Essentially we’re trying to remove any chance whatsoever of anything being cached anywhere (which is the most common cause of these issues).
Of course your mileage may vary, but for us with 120 projects and 1.3 million lines of code refactors regularly throw this issue up and it resolves it reliably.
answered Mar 9, 2017 at 2:10
Paul CarrollPaul Carroll
1,50913 silver badges15 bronze badges
This seems to be caused by the fact that the Visual Studio solution file does not contain the project dependencies. I found that I had to edit the solution file manually to setup the dependencies using the project GUIDs.
For example, in our solution file we had something like this:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectAProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
EndProject
Note that no dependencies are specified. It needed to be more like this where the additional GUIDs specified are the GUIDs of the project that ProjectA depends on.
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectAProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
ProjectSection(ProjectDependencies) = postProject
{EB576061-5081-4ED5-9146-1B20C893E51E} = {EB576061-5081-4ED5-9146-1B20C893E51E}
{A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40} = {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40}
{03FAB21D-C077-499B-9B19-67971791D369} = {03FAB21D-C077-499B-9B19-67971791D369}
{F5E0C7B8-36AD-46B0-A74D-9C48516E208A} = {F5E0C7B8-36AD-46B0-A74D-9C48516E208A}
EndProjectSection
EndProject
See this post for more information.
answered Jul 4, 2013 at 16:53
2
I also had the same error.
The fix was, to check the path. In my path, one folder has the name abc%20ert. This came from syncing the space from git. Visual Studio has problems with the %20 in the path. Removing this solved the problem.
answered May 4, 2017 at 7:40
2
In my case one of the projects were not building but there was absolutely no mention of it in the errors. After a couple hours of pulling my hair and dropping some F bombs, I finally looked at the output carefully and noticed there was an error:
And that was it. I fixed it and presto all errors were gone. But I got curious so I changed the code back to the code that was failing compilation. I did a build and now I got the friendly build error. For some reason the error was not being shown. No idea why…
answered Apr 7, 2017 at 17:51
CodingYoshiCodingYoshi
24.7k4 gold badges58 silver badges60 bronze badges
Check the target framework version in each project=>properties screen. If it’s lower than used in the reference projects or files, you’ll get error as the compiler doesn’t know how to deal with the higher version of framework.
From what you describe, you have a dependency that has framework v4.0 as target.
Change dependencies target framework one by one until your project builds.
If it’s a 3rd party closed source dependency, please ask them to provide it with .net 3.5 target.
There is no workaround.
answered Sep 5, 2018 at 19:53
michalmichal
511 silver badge1 bronze badge
I had a similar problem. In my case I was able to solve it by 2 steps. First, I Cleaned the Solution using the Clean Solution option. Then after the solution was cleaned, the debugger detected that I had installed outdated versions of the Microsoft.Aspnet.Mvc library. So I installed the new ones through the Library console using the lines below:
Install-Package Microsoft.Aspnet.Mvc -version 5.2.3.0 -projectname _____________
Install-Package Microsoft.Aspnet.Mvc -version 5.2.3.0 -projectname _____________
answered Sep 18, 2016 at 16:48
1
I got this error when using C# 7 language features in an ASP.NET project, where it didn’t have a recent version of NuGet package Microsoft.Net.Compilers
, as described in Enabling c# 7 in a asp.net application.
answered Aug 15, 2017 at 5:45
Bart VerkoeijenBart Verkoeijen
15.8k7 gold badges53 silver badges56 bronze badges
I had this problem with a solution involving more that one project.
The thing was that there were different Framework versions.
My WEB project was 4.5 and there was a PDF Helper using 4.7.2 version.
After I aligned all versiones, I cleaned the solution and the compilation went fine.
Best regards.
answered Jul 28, 2020 at 13:56
This happened to me after switching between branches in a project which have significant differences between them, I tried every solution from the web but non worked.
Finally, I had to delete my local project files and clone the project from the GitHub repo again, after that when I started the project, the project build worked without errors.
answered Apr 13, 2021 at 12:17
In my case I had an error in dependent project. That is why the dependent project was not built and DLL was missing. I had to solve other errors in dependent project first, then error CS0006 disappeared.
answered Apr 16, 2021 at 13:40
Cleaning projects by dotnet clean helped me:
dotnet clean
answered Nov 15, 2022 at 21:15
vladimirvladimir
12.6k2 gold badges38 silver badges63 bronze badges
- Remove From My Forums
-
Question
-
Hi,
When I compile my C# project i am getting the below errors:
Error 1.
Error CS0006
Metadata file ‘E:CodeEMREMRCSDebugUIControl.dll’ could not be found EMRCS
E:CodeEMREMRCSCSC 1
ActiveError 2.
Error CS0006
Metadata file ‘E:CodeEMRUIControlEnergyUsageManagerbinDebugEnergyUsageManager.dll’ could not be found
EMRCS E:CodeEMREMRCSCSC
1 ActiveError 3.
Error CS0006
Metadata file ‘E:CodeEMRUIControlEMRLoggerbinDebugEMRLogger.dll’ could not be found
EMRCS E:CodeEMREMRCSCSC
1 ActiveError 4.
Error CS0006
Metadata file ‘E:CodeEMRUIControlWebserverRequestbinDebugWebserverRequest.dll’ could not be found
EMRCS E:CodeEMREMRCSCSC
1 ActiveFor Your Information,
For Error 1, In the below path of the project «UIControl.dll» is not there
E:CodeEMREMRCSbinDebugAnd also i verified that «build» checkbox is checked from Solution ->Configuration Properties
Please help me the root cause of these errors.
Regards,
Satya
Answers
-
Hi Satya,
Make sure that the «build» check box is marked in the following location:
1. Right click on the solution and click Properties.
2. Click Configuration on the left.
3. Make sure the check box under «Build» for the project is checked. If check then uncheck and check again and save the settings.
4. Clean the solution by right clicking on the project solution and rebuild the project again.
5. Make sure you don’t have any other error messages in your project and if you do, fix those first!
Thanks,
Sabah Shariq[If a post helps to resolve your issue, please click the
«Mark as Answer» of that post or click
«Vote as helpful» button of that post. By marking a post as Answered or Helpful, you help others find the answer faster. ]-
Proposed as answer by
Thursday, September 6, 2018 8:27 AM
-
Marked as answer by
Satyaprakash A
Friday, September 7, 2018 4:48 PM
-
Proposed as answer by
Error 1 Metadata file
Severity Code Project Description File Line Suppression State
Error CS0006 MalaShree Metadata file ‘E:ProjectProviderbinDebugnet5.0refProvider.dll’ could not be found E:ProjectSchoolCSC 1 Active
Severity Code Project Description File Line Suppression State
Warning MSB3277 Provider (ProviderProvider) Found conflicts between different versions of «Microsoft.AspNetCore.Http.Features» that could not be resolved.
Answer
Option 1.
You just had the same problem. Visual Studio isn’t building the project that’s being referenced.
Do Step by Step like as given below.
- Right click on the solution and click Properties.
- Click Configuration on the left.
- Make sure the check box under «Build» for the project it can’t find is checked. If it is already checked, uncheck, hit apply and check the boxes again
- (Optional) You had to do it for both Release and Debug modes on the solution properties.
Option 2.
Close your Visual Studio and delete the .suo file that is next to the .sln file. (It will be re-generated the next time you Save all (or exit Visual Studio)).
Option 3.
You must manually build the dll project by right clicking on your solution and click on build solution.
Targeting a slightly different version of .NET and this was flagged as a warning by the compiler, but it was causing building to fail. This should have been flagged as an error and not a warning.
Option 4.
In the Visual Studio 2019 this is also working fine like as given below step.
- Close Visual Studio
- Delete the hidden .vs folder
- Reopen Visual Studio and rebuild the solution.
Option 5.
install-package entityframework -version 6.0.0.0
The error was still showing like as given above , so that those references were there because there was an older version of Entity Framework supposedly «preinstalled» on the project, but it was not really working.
The file packages.config and noticed that there was another reference:
<packages>
**<package id="EntityFramework" version="5.0.0" targetFramework="net45" />**
<package id="EntityFramework" version="6.0.0" targetFramework="net45" />
</packages>
After that deleted the line, cleaned and rebuild the project and the container solution, and it finally worked.
Option 6.
If your solution path is something like «My Project%2c Very Popular%2c Unit Testing%2c Software and Hardware.zip», it cannot resolve the metadata file, perhaps we should prevent some invalid words like %2c.
Option 7.
In some case this is working fine in VS2019 .Net Core,.net 5, ASP.Net Core solution.
- Open a PowerShell console in the same location of the solution.
- Type dotnet restore to restore al packages and projects
- Type dotnet build. The solution will be built
Related information
Sundar Neupane
I like working on projects with a team that cares about creating beautiful and usable interfaces.
If findandsolve.com felt valuable to you, feel free to share it.
Содержание
- Csc error cs0006 metadata file
- Answered by:
- Question
- Csc error cs0006 metadata file
- Answered by:
- Question
- CS0006: CSC(0,0): Metadata file ‘C:Windowssystem32configsystemprofile.nugetpackages. » could not be found #6027
- Comments
- Details about Problem
- Detailed repro steps so we can see the same problem
- Verbose Logs
- Error CS0006 Metadata file .dll could not be found (Solved)
- Csc error cs0006 metadata file
- Answered by:
- Question
- Answers
- All replies
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
When I compile my C# project i am getting the below errors:
Error CS0006 Metadata file ‘E:CodeEMREMRCSDebugUIControl.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 2.
Error CS0006 Metadata file ‘E:CodeEMRUIControlEnergyUsageManagerbinDebugEnergyUsageManager.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 3.
Error CS0006 Metadata file ‘E:CodeEMRUIControlEMRLoggerbinDebugEMRLogger.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 4.
Error CS0006 Metadata file ‘E:CodeEMRUIControlWebserverRequestbinDebugWebserverRequest.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
For Your Information,
For Error 1, In the below path of the project «UIControl.dll» is not there
E:CodeEMREMRCSbinDebug
And also i verified that «build» checkbox is checked from Solution ->Configuration Properties
Please help me the root cause of these errors.
Источник
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
When I compile my C# project i am getting the below errors:
Error CS0006 Metadata file ‘E:CodeEMREMRCSDebugUIControl.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 2.
Error CS0006 Metadata file ‘E:CodeEMRUIControlEnergyUsageManagerbinDebugEnergyUsageManager.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 3.
Error CS0006 Metadata file ‘E:CodeEMRUIControlEMRLoggerbinDebugEMRLogger.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
Error 4.
Error CS0006 Metadata file ‘E:CodeEMRUIControlWebserverRequestbinDebugWebserverRequest.dll’ could not be found EMRCS E:CodeEMREMRCSCSC 1 Active
For Your Information,
For Error 1, In the below path of the project «UIControl.dll» is not there
E:CodeEMREMRCSbinDebug
And also i verified that «build» checkbox is checked from Solution ->Configuration Properties
Please help me the root cause of these errors.
Источник
Details about Problem
Running .NET Core SDK 2.0.2, .NET Framework 4.6.2 and the VS 2017 Build Tools for v 15.4.
Running from within TeamCity I’m intermittently getting build failures like this:
CS0006: CSC(0,0): Metadata file ‘C:Windowssystem32configsystemprofile.nugetpackages. XX.dll» could not be found
with no indication as to why this is
Detailed repro steps so we can see the same problem
Install dependencies so:
dotnet-sdk-2.0.2-win-x64.exe /install /quiet /norestart /log «C:WindowsTempdotnet-sdk-2.0.2-win-x64.log»»
vs_buildtools.exe —add Microsoft.VisualStudio.Workload.NetCoreBuildTools —add Microsoft.VisualStudio.Workload.MSBuildTools —add Microsoft.VisualStudio.Workload.WebBuildTools —passive —norestart
Project file looks like this:
C:Program Files (x86)Microsoft Visual Studio2017BuildToolsMSBuild15.0BinMSBuild.exe ./src/XX.sln /t:Restore;Build /m /nodeReuse:False /tv:15.0 /v:diag /p:RestorePackages=»True» /p:Optimize=»True» /p:DebugSymbols=»True» /p:TreatWarningsAsErrors=»True» /p:Configuration=»Release» /logger:Fake.MsBuildLogger+TeamCityLogger,»C:BuildAgentwork9703509c24d73488packagesbuildFAKE.x64toolsFakeLib.dll» /logger:Fake.MsBuildLogger+ErrorLogger,»C:BuildAgentwork9703509c24d73488packagesbuildFAKE.x64toolsFakeLib.dll»
Verbose Logs
Verbose msbuild logs
The text was updated successfully, but these errors were encountered:
Источник
I faced this error and it’s quite complicate to solve so I’m writing a post just to keep note and hopefully to provide some support to some other developers.
I spent a lot of time around this error and there are many reasons, ways and different scenarios because this error.
I had a look in internet and I tried any explicable and inexplicable workaround I found in Stackoverflow.
In my opinion is a common cause created by different things which are;
- different .net version used by some of the libraries, sometime we inadvertently change that.
- dependency breakdown in Visual studio, in that case we are able to build using MSBUILD but we can’t build using Visual Studio UI.
- Nuget package not updated in one of the referenced libraries.
- Project file with different configuration.
Quickest way to fix this issue is following some main steps:
- Fix the target framework, if you have few projects then is fine but if you have 70 projects or more then could be a problem so,
download the Target Framework Migrator and in one click align all the target framework in all project, this is a great tool to do that. - Fix nugget, enter in the nugget console
and execute Nuget restore SolutionName.sln
- Align and check the build configuration, right click on the solution and select properties.
Select configuration properties and check that all the projects are using the same configuration.
Check that all proper projects have the build checkbox selected.
Some external project like WIX or SQL or others could have the build checkbox selected, if this is the case then check that the specific project builds correctly or uncheck the box and apply. - Unload all the project from the solution and start loading each project starting from the base library.
Every time you reload one then rebuild the solution.
At the end of this procedure the problem should be definitely solved.
Источник
Answered by:
Question
Yesterday, I am trying to setup team build 2008 to run .net 4.0 application. I followed steps as posted at http://blogs.msdn.com/b/willbar/archive/2009/11/01/building-net-4-0-applications-using-team-build-2008.aspx
After restart build service my exisitng 3.5 solutions are failed to build with CSC : error CS0006: Metadata file . could not be found [. csproj].
I am seeing problem if the solution having multiple referenced projects. ex : Project A is my actual project which refers Project B and C.
If I revert back msbuild path in %ProgramFiles%Microsoft Visual Studio 9.0Common7IDEPrivateAssembliesTFSBuildService.exe.config then its able to build my 3.5 projects but my actual purpose building 4.0 application is failing.
Can you help me. I want
Answers
I think this issue is related to the Build Order.
1 Check the Configuration of the Build Definition(such as Release | Any CPU)
2 In the solution configuration manager, make sure that All Projects will be built correctly under the configuration
Best regards,
Ruiz
MSDN Subscriber Support in Forum
If you have any feedback on our support, please contact msdnmg @ microsoft.com
- Marked as answer by Ruiz Yi Moderator Monday, August 30, 2010 6:25 AM
I did not encounter this issue in my TFS2008(with MSBuild4.0).
1 Are Project A,B and C in the same solution?
2 What the kind of these project? Winform, Class Library or others?
3 Does all these Projects Target .NET 4.0?
4 Could you verify whether Project B and C are compiled before ProjectA in the BuildLog?
Could you check that all projects are configured to be built in Configuration Manager?
5 Could you try build the solution with MSBuild4.0 manually?
5.1 Log on Build Server as the account TFSBuild
5.2 Run VS2010 to build the solution, will it success?
5.3 Run MSBuild 4.0 to build the solution, will it success?
Best regards,
Ruiz
MSDN Subscriber Support in Forum
If you have any feedback on our support, please contact msdnmg @ microsoft.com
I also have this issue after upgrading TFS to 2010 (and the Team Build service)
The solutions are still developed in VS 2008 and I try to make the Team Build work.
CSC the metadata file . dll could not be found.
When I looked at the Team Build log I realized that MSBuild built projects not in the dependancy-order..
So if I have projA that references projB and projB references to projC, it builds projA first and failed because it does not find projB.dll.
I need a workaround for that.
I think this issue is related to the Build Order.
1 Check the Configuration of the Build Definition(such as Release | Any CPU)
2 In the solution configuration manager, make sure that All Projects will be built correctly under the configuration
Best regards,
Ruiz
MSDN Subscriber Support in Forum
If you have any feedback on our support, please contact msdnmg @ microsoft.com
- Marked as answer by Ruiz Yi Moderator Monday, August 30, 2010 6:25 AM
I have tried everything!
Delete EDMX file
Played with Version of Framework from 3.5 to 4 = Same
Got the same version of the site in two places. i had the same issue in tne new one, but by magic the next day it was working OK with no intervention about changing or deleting anything. The second site is working Excellent, creates what is it supposed to but the old website comes up with issues like
Error 1 The type ‘XXX.Model.ListYYYYY’ already contains a definition for ‘authorizationZZZZ’ C:-windows pathADMEntities.Designer.cs 2697 45 XXX.Mode
Error 2 Metadata file ‘C:windows pathXXX.ModelbinDebugXXX.Model.dll’ could not be found C:-windows pathXXX.WebCSC XXX.Web
Have update de model on EF
Have unticked save and rebuild with a clean BUILD and ticked it back on = KO
It is impossible to find a straight answer to this issue in any ASP, C# or VS official forum.
Yes there are two ‘authorizationZZZZ’ classes declared but the one is global and the other is partial.
Источник
Начал писать приложение. Использую Microsoft Visual Studio 2015. Через менеджер пакетов NuGet подключил библиотеку MvvmLight. И всё, программирование на этом встало, так как я не могу скомпилировать проект. Удалил через менеджер пакетов библиотеки, скопировал библиотеки вручную в папку с проектом, подключил их вручную, но всё равно студия пишет ошибки. Это просто вынос мозга, почему оно не работает?
Severity Code Description Project File Line
Error Metadata file ‘ тесты и т.дDocumentationViewerLibsMicrosoft.Practices.ServiceLocation.dll’ could not be found Documentation.ViewModel F:ProgrammingC#Временное, тесты и т.дDocumentationViewerDocumentation.ViewModelCSC
Вот вывод Visual Studio
1>—— Build started: Project: Documentation.Core, Configuration: Debug Any CPU ——
1>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
1>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerCommonbinDebugCommon.dll’ could not be found
2>—— Build started: Project: Documentation.ViewModel, Configuration: Debug Any CPU ——
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerCommonbinDebugCommon.dll’ could not be found
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerDocumentation.CorebinDebugDocumentation.Core.dll’ could not be found
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.dll’ could not be found
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.Extras.dll’ could not be found
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.Platform.dll’ could not be found
2>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
2>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsMicrosoft.Practices.ServiceLocation.dll’ could not be found
3>—— Build started: Project: DocumentationViewer, Configuration: Debug Any CPU ——
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerCommonbinDebugCommon.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerDocumentation.CorebinDebugDocumentation.Core.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerDocumentation.ViewModelbinDebugDocumentation.ViewModel.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.Extras.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsGalaSoft.MvvmLight.Platform.dll’ could not be found
3>CSC : error CS0006: Metadata file ‘F:ProgrammingC#Временное’ could not be found
3>CSC : error CS0006: Metadata file ‘ тесты и т.дDocumentationViewerLibsMicrosoft.Practices.ServiceLocation.dll’ could not be found
========== Build: 0 succeeded, 3 failed, 1 up-to-date, 0 skipped ==========
Я не пойму, библиотеки не копируются в папку, в которую помещаются все скомпиленные библиотеки и эксешники?
Severity Code Description Project File Line Suppression State
Error CS0006 Metadata file ‘C:Usersuser1SourceReposPartsUnlimitedsrcPartsUnlimitedWebsitebinDebugnetcoreapp2.0PartsUnlimitedWebsite.dll’ could not be found PartsUnlimited.UnitTests C:Usersuser1SourceReposPartsUnlimitedtestPartsUnlimited.UnitTestsCSC 1 Active
Severity Code Description Project File Line Suppression State
Error Missing binding C:Usersuser1SourceReposPartsUnlimitedsrcPartsUnlimitedWebsitenode_modulesgrunt-sassnode_modulesnode-sassvendorwin32-x64-48binding.node PartsUnlimitedWebsite C:Usersuser1SourceReposPartsUnlimitedsrcPartsUnlimitedWebsiteEXEC 1
Severity Code Description Project File Line Suppression State
Warning Task «sass» not found.� Use —force to continue. PartsUnlimitedWebsite C:Usersuser1SourceReposPartsUnlimitedsrcPartsUnlimitedWebsiteEXEC 1
Severity Code Description Project File Line Suppression State
Error MSB3073 The command «grunt» exited with code 3. PartsUnlimitedWebsite C:Usersuser1SourceReposPartsUnlimitedsrcPartsUnlimitedWebsitePartsUnlimitedWebsite.csproj 41
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Diagnostics; using System.Runtime.InteropServices; using System.IO; using Microsoft.Win32; namespace CPlan.W3LF { /// <summary> /// The wrapper around W3L. /// </summary> public static class Loader { #region API /// <summary> /// The call that is made to W3L.dll. /// </summary> /// <param name="CommandLine">Command line arguments. <remarks>Add the full execution path in quotation.</remarks></param> /// <param name="ExePath">The path to war3.exe.</param> /// <param name="ErrorMsg">Any error message that occured while patching/loading war3.exe.</param> /// <returns>A code about how the library has handled the call.</returns> [DllImport("w3l.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] static extern int DoInject(string CommandLine, string ExePath, [Out] out string ErrorMsg); // UNDONE: Changed the size of the API definition. //static extern Int32 DoInject( // [MarshalAs(UnmanagedType.LPStr)] string CommandLine, // [MarshalAs(UnmanagedType.LPStr)] string ExePath, // [Out][MarshalAs(UnmanagedType.LPStr)] out string ErrorMsg // ); #endregion /// <summary> /// A list of Warcraft III startup options. /// </summary> [Flags] public enum StartOptions : byte { /// <summary> /// No special arguments. /// </summary> None = 0, /// <summary> /// Starts Warcraft III in windowed mode. /// </summary> Window = 1, /// <summary> /// Starts Warcraft III with OpenGL. /// </summary> OpenGl = 2, /// <summary> /// Starts Warcraft III with Software Transform and Lighting Video mode /// </summary> SWTNL = 4, /// <summary> /// Starts classic Warcraft III. /// </summary> Classic = 8 } /// <summary> /// List for the registry check. /// </summary> private static List<Gateway> gateways = new List<Gateway>() { new Gateway(new Uri("server.eurobattle.net"), 8, "Eurobattle.Net"), new Gateway(new Uri("localhost"), 8, "Eurobattle.Net GProxy") }; /// <summary> /// Attempts to start Warcraft III (and GProxy.) /// </summary> /// <returns>True if call(s) has/have succeeded; else false.</returns> #if XPAM /// <param name="RunGP">Determine whether or not to check data for GProxy as well.</param> public static bool RunW3(bool RunGP) #else public static bool RunW3() #endif { try { // Check if war3.exe and w3lh.dll exist. try { if (!File.Exists(Path.Combine(Settings.W3Path, "war3.exe"))) { MessageBox.Show("The given directory does not contain war3.exe, please make sure your registry contains the right information.rnrnPath: " + Settings.W3Path, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } if (!File.Exists(Path.Combine(Settings.W3Path + "w3lh.dll"))) { if (File.Exists(Path.Combine(Environment.CurrentDirectory + "w3lh.dll"))) { File.Copy(Path.Combine(Environment.CurrentDirectory + "w3lh.dll"), Path.Combine(Settings.W3Path + "w3lh.dll")); } else { MessageBox.Show("w3lh.dll copy in the directory "" + Environment.CurrentDirectory + "\w3lh.dll" does not exist.rnPlease reinstall EuroLoader.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return false; } } } catch (UnauthorizedAccessException) { MessageBox.Show("The application does not have the rights to either read or write to the source/destination directory.", "Error", MessageBoxButtons.OK); return false; } catch (FileNotFoundException) { MessageBox.Show("w3lh.dll was not found, please reinstall the application.", "Error", MessageBoxButtons.OK); return false; } catch (Exception ex) { MessageBox.Show("An unhandled exception was thrown.rnrn" + ex.Message, "Error", MessageBoxButtons.OK); return false; } // Checks the registry for a server.eurobattle.net entry. List<string> Entries = new List<string>((string[])Registry.CurrentUser.OpenSubKey("Software\Blizzard Entertainment\Warcraft III").GetValue("Battle.net Gateways")); //int count = (Entries.Count - 2) / 3; int server = 0; bool hasServer = false; for (int i = 2; i < Entries.Count; i += 3) { if (!hasServer) ++server; foreach (Gateway gw in gateways) { if (Entries[i].Equals(gw.Hostname.ToString()) || Entries[i + 2].Equals(gw.Name)) { if (!Entries[i].Equals(gw.Hostname.ToString())) Entries[i + 1] = gw.Hostname.ToString(); if (!Entries[i + 1].Equals(gw.TimeZone)) Entries[i + 1] = gw.TimeZone.ToString(); if (!Entries[i + 2].Equals(gw.Name)) Entries[i + 1] = gw.Name; hasServer = true; } } } Entries[1] = (server.ToString().Length == 2 ? server.ToString() : "0" + server.ToString()); Registry.CurrentUser.OpenSubKey("Software\Blizzard Entertainment\Warcraft III", true).SetValue("Battle.net Gateways", Entries.ToArray(), RegistryValueKind.MultiString); // Checks for the given arguments. StartOptions StartOption = Settings.StartupOptions; string Args = ""; if ((StartOption & StartOptions.Window) == StartOptions.Window) Args += " -window "; if ((StartOption & StartOptions.OpenGl) == StartOptions.OpenGl) Args += " -opengl "; if ((StartOption & StartOptions.SWTNL) == StartOptions.SWTNL) Args += " -swtnl "; if ((StartOption & StartOptions.Classic) == StartOptions.Classic) Args += " -classic "; string Msg; /* * Why Settings.W3Path + "\war3.exe": * The command line will not accept one argument. * Structure: * <Path of the to-execute application> [arguments] * If you do: * -window * Windows/Warcraft III will think you're starting up -window with no arguments. * Therefore you must have at least two arguments. */ switch (DoInject('"' + Path.Combine(Settings.W3Path, "war3.exe") + '"' + Args, Path.Combine(Settings.W3Path, "war3.exe"), out Msg)) { case 0: if (Msg != null) MessageBox.Show(Msg, "Startup message"); return true; // No error. case 2: MessageBox.Show("Unable to find war3.exe inrn" + Msg, "Error", MessageBoxButtons.OK); return false; case 1: default: MessageBox.Show(Msg, "Error", MessageBoxButtons.OK); return false; } } catch (AccessViolationException) { MessageBox.Show("An exception was thrown: Access Violation.", "Error", MessageBoxButtons.OK); return false; } catch (DllNotFoundException) { MessageBox.Show("Loader was unable to find w3l.dll.rnReinstalling the application could solve the issue.", "Error", MessageBoxButtons.OK); return false; } catch (Exception ex) { MessageBox.Show("An exception was thrown:rnrn" + ex.Message, "Error", MessageBoxButtons.OK); return false; } } } } |
66 ответов
У меня была такая же проблема. Visual Studio не создает проект, на который ссылаются.
- Щелкните правой кнопкой мыши на решении и выберите «Свойства».
- Нажмите «Конфигурация» слева.
- Убедитесь, что флажок в поле «Создать» для проекта, который он не может найти, проверяется. Если он уже установлен, снимите флажок, нажмите и снова установите флажки.
Matt_Bro
18 июль 2013, в 14:17
Поделиться
Это все еще может произойти в более новых версиях Visual Studio (у меня только что это произошло в Visual Studio 2013):
Еще одна попытка — закрыть Visual Studio и удалить файл .suo
который находится рядом с файлом .sln
. (Он будет сгенерирован заново при следующем Save all
(или выходе из Visual Studio)).
У меня была эта проблема при добавлении новых проектов в решение на другом компьютере и последующем получении ревизий, но файл .suo
может быть поврежден и в других случаях и привести к очень странному поведению Visual Studio, поэтому удаление его из вещей, которые я всегда стараюсь.
Обратите внимание, что при удалении файла .suo
будут сброшены стартовые проекты решения.
Подробнее о файле .suo
здесь.
corvuscorax
22 апр. 2014, в 10:44
Поделиться
Предлагаемый ответ не работает для меня. Ошибка является приманкой для другой проблемы.
Я обнаружил, что нацелился на несколько иную версию .NET, и компилятор пометил ее как предупреждение, но это приводило к сбою сборки. Это должно быть помечено как ошибка, а не как предупреждение.
jordan koskei
15 дек. 2015, в 22:08
Поделиться
Что ж, мой ответ — это не просто краткое изложение всех решений, но оно предлагает нечто большее.
Секция 1):
В общем решения:
У меня было четыре ошибки такого типа («файл метаданных не найден»), а также одна ошибка: «Не удалось открыть исходный файл (» ошибка не определена «)».
Я пытался избавиться от файла метаданных не удалось найти ошибку. Для этого я прочитал много постов, блогов и т.д. И обнаружил, что эти решения могут быть эффективными (обобщая их здесь):
-
Перезапустите Visual Studio и повторите сборку.
-
Перейдите в «Обозреватель решений». Щелкните правой кнопкой мыши на Решение. Перейти к свойствам. Перейдите в «Диспетчер конфигурации». Проверьте, установлены ли флажки под «Build» или нет. Если какие-либо или все из них не отмечены, то проверьте их и попробуйте построить заново.
-
Если вышеуказанные решения не работают, следуйте последовательности, упомянутой в шаге 2 выше, и даже если все флажки установлены, снимите их, проверьте снова и попробуйте выполнить сборку заново.
-
Порядок сборки и зависимости проекта:
Перейдите в «Обозреватель решений». Щелкните правой кнопкой мыши на Решение. Перейти к «Зависимости проекта…». Вы увидите две вкладки: «Зависимости» и «Порядок сборки». Этот порядок сборки является тем, в котором строится решение. Проверьте зависимости проекта и порядок сборки, чтобы убедиться, что какой-либо проект (скажем, «проект1»), который зависит от другого (скажем, «проект2»), пытается построить этот проект (проект2). Это может быть причиной ошибки.
-
Проверьте путь к отсутствующему .dll:
Проверьте путь к отсутствующему .dll. Если путь содержит пробел или любой другой недопустимый символ пути, удалите его и попробуйте построить заново.
Если это причина, то отрегулируйте порядок сборки.
Раздел (2):
Мой частный случай:
Я попробовал все шаги выше с различными перестановками и комбинациями с перезапуском Visual Studio несколько раз. Но это не помогло мне.
Итак, я решил избавиться от другой ошибки, с которой мне пришлось столкнуться («Невозможно открыть исходный файл (» ошибка не определена «)»).
Я наткнулся на сообщение в блоге: Ошибка TFS — Невозможно открыть исходный файл («Неопределенная ошибка»)
Я попытался выполнить шаги, упомянутые в этом сообщении в блоге, и я избавился от ошибки «Исходный файл не может быть открыт (» неопределенная ошибка «)», и неожиданно я избавился и от других ошибок («файл метаданных не найден)»,
Раздел (3):
Мораль истории:
Попробуйте все решения, как указано в разделе (1) выше (и любые другие решения), чтобы избавиться от ошибки. Если ничего не получится, как в блоге, упомянутом в разделе (2) выше, удалите записи всех исходных файлов, которых больше нет в исходном элементе управления и файловой системе, из вашего файла .csproj.
Vikram
05 май 2014, в 16:54
Поделиться
В моем случае это было вызвано несоответствием версии .NET Framework.
Один проект был 3.5, а другой ссылающийся на проект 4.6.1.
Eric Schneider
08 апр. 2016, в 15:14
Поделиться
Закрытие и повторное открытие Visual Studio 2013 сработало для меня!
Roffers
28 май 2015, в 11:55
Поделиться
Ну, ничего в предыдущих ответах не помогло мне, так что это заставило меня задуматься о том, почему я щелкаю и надеюсь, что когда мы, как разработчики, действительно должны попытаться понять, что здесь происходит.
Мне казалось очевидным, что эта неправильная ссылка на файл метаданных должна где-то храниться.
Быстрый поиск файла .csproj выявил виновные строки. У меня был раздел под названием <itemGroup>, который, казалось, висел на старом неправильном пути к файлу.
<ItemGroup>
<ProjectReference Include="......MySiteOldMySite.EntitiesMySite.Entities.csproj">
<Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
<Name>Beeyp.Entities</Name>
</ProjectReference>
...
Итак, простое исправление действительно:
- Сделайте резервную копию вашего .csproj файла.
- Найдите неправильные пути в файле .csproj и переименуйте соответствующим образом.
Пожалуйста, убедитесь, что вы сделали резервную копию своего старого .csproj перед тем, как начать играть.
Alex Stephens
27 нояб. 2014, в 09:50
Поделиться
Я получил ту же ошибку «Файл метаданных ‘.dll’ не может быть найден», и я попробовал несколько вещей, описанных выше, но причина ошибки заключалась в том, что я ссылался на сторонний файл DLL, который был нацелен на версию .NET что мой проект целевой .NET версия. Таким образом, решение состояло в том, чтобы изменить целевую структуру моего проекта.
Mladen Nikolov
11 фев. 2016, в 14:37
Поделиться
Я также встретил эту проблему. Во-первых, вам нужно вручную создать проект DLL, щелкнув правой кнопкой мыши Build. Тогда это сработает.
user1678541
14 сен. 2012, в 21:48
Поделиться
Я добавил новый проект в свое решение и начал его получать.
Причина? Проект, который я привел, был нацелен на другую среду .NET(4.6, а два других были 4.5.2).
Todd Vance
11 дек. 2015, в 17:13
Поделиться
В моем случае у меня есть установленная директория ошибочно.
Если ваш путь решения — это что-то вроде «Мое Project% 2c Very Popular% 2c Unit Testing% 2c Software и Hardware.zip», он не может разрешить файл метаданных, возможно, нам следует предотвратить некоторые недопустимые слова, такие как% 2c.
Переименование пути в обычное имя разрешило мою проблему.
masphei
27 март 2015, в 09:55
Поделиться
Для меня это произошло, когда я включил новый проект в решение.
Visual Studio автоматически выбирает .NET Framework 4.5.
Я перешел на версию .NET 4.5.2, как и другие библиотеки, и это сработало.
Andre Mesquita
31 март 2017, в 13:03
Поделиться
Я тоже решил эту проблему, но, попробовав предыдущие ответы, единственное, что мне помогло, — это открыть каждый проект в моем решении 1 на 1 и построить их по отдельности.
Затем я закрыл Visual Studio 2013, снова открыл свое решение, и оно скомпилировалось нормально.
Это странно, потому что, если я щелкнул каждый проект в моем обозревателе решений и попытался построить их таким образом, все они потерпели неудачу. Мне пришлось открыть их одному в их собственных решениях.
prospector
19 дек. 2014, в 22:20
Поделиться
Для меня сработали следующие шаги:
- Найти проект, который не строит
- Удалить/добавить ссылки на проекты в рамках решения.
Baglay Vyacheslav
11 июль 2014, в 15:03
Поделиться
Для меня он пытался найти DLL в пути, который использовался для содержания Project, но мы перенесли его в новый каталог. Решение имело правильный путь к проекту, но Visual Studio каким-то образом продолжала искать в старом расположении.
Решение. Переименуйте каждую проблему. Проект — просто добавьте символ или что-то еще — затем переименуйте его обратно в исходное имя.
Это должно быть reset некоторый глобальный кеш какого-то типа в Visual Studio, потому что это очищает и эту проблему, и несколько подобных ей, в то время как такие вещи, как Clean, не работают.
Chris Moschini
28 янв. 2014, в 07:29
Поделиться
Мой пример проблемы был вызван общим проектом, в котором было дублированное имя класса (под другим именем файла). Странно, что Visual Studio не смогла обнаружить это и взорвала процесс сборки.
Eric
24 июль 2014, в 20:57
Поделиться
В моем случае проблема была вызвана простой ошибкой сборки,
ошибка CS0067: событие ‘XYZ’ никогда не используется
который по какой-либо причине не появился в окне ошибок.
Из-за этого система сборки Visual Studio, похоже, пропустила ошибку и попыталась построить зависимые проекты, которые, в свою очередь, потерпели неудачу с раздражающим сообщением метаданных.
Рекомендация -as глупа, как может sound-:
Сначала посмотрите на ваше окно вывода!
Мне потребовалось полчаса, прежде чем эта идея поразила меня…
Heinz Kessler
01 нояб. 2015, в 10:01
Поделиться
Я получил эту проблему в Visual Studio 2012 в решении, в котором было много проектов. Перестройка каждого проекта в решении вручную в том же порядке, в котором он был исправлен в порядке сборки проекта (щелчок правой кнопкой мыши и перестроение в обозревателе решений).
В конце концов я попал в тот, который дал мне ошибку компиляции. Я исправил ошибку, и после этого решение было бы правильно построено.
dan-gph
31 окт. 2014, в 00:47
Поделиться
Я столкнулся с той же проблемой. В моем случае я ссылался на проект библиотеки классов с более высокой версией .Net, чем у моего проекта, и VS не смог собрать проект и вывел ту же ошибку, что и вы.
Я просто установил .Net-версию своего проекта библиотеки классов (тот, который сломал сборку), идентичный .Net-версии ссылочного проекта, и проблема решена.
Code_Worm
21 июнь 2018, в 16:14
Поделиться
Похоже, такие ошибки связаны с тем, что Visual Studio не предоставляет правильную информацию об ошибке. Разработчик даже не понимает причину неудачной сборки. Это может быть синтаксическая ошибка или что-то еще. В общем, для решения таких проблем вы должны найти корень проблемы (например, посмотрите журнал сборки).
В моем случае проблема была в том, что в окне Error List
не было ошибок. Но на самом деле были синтаксические ошибки; Я нашел эти ошибки в окне » Output
, и после их устранения проблема была решена.
burzhuy
31 янв. 2017, в 09:37
Поделиться
У меня тоже была такая же ошибка. Он прячется как на пути ниже. Путь, на который я ссылался для файла DLL, выглядит как «D:Assemblies FolderAssembly1.dll».
Но исходный путь, на который ссылалась сборка, был «D:Assemblies %20FolderAssembly1.dll».
Из-за этого изменения имени пути сборка не может быть извлечена из исходного пути и, следовательно, выдает ошибку «Метаданные не найдены».
Решение в вопросе. Как заменить все пробелы на %20 в С#? ,
Arun Prasad
18 июнь 2016, в 07:16
Поделиться
В моем случае проблема заключалась в том, что я вручную удалил файл без компиляции, который был помечен как «отсутствует». Как только я удалил ссылку на текущий файл и перекомпилировал — все было хорошо.
David Ford
10 апр. 2014, в 15:04
Поделиться
Для моего случая это было то, что я закомментировал классы в определенном (пустом) пространстве имен:
namespace X.Y.Z.W
{
// Class code
}
Когда я удалил код пространства имен и команды его импорта (использования) — это решило проблему.
В сборке также говорилось — вместе с отсутствующим файлом DLL проекта:
ошибка CS0234: имя типа или пространства имен ‘W’ не существует в пространстве имен ‘XYZ’ (отсутствует ссылка на сборку?)
Michail Michailidis
24 нояб. 2015, в 16:43
Поделиться
У меня была эта ошибка, когда я пытался опубликовать веб-приложение. Оказалось, что один из свойств класса был заключен в
#if DEBUG
public int SomeProperty { get; set; }
#endif
но использование свойства не было. Публикация была выполнена в конфигурации Release без символа DEBUG
, очевидно.
Dmitri Trofimov
04 сен. 2015, в 09:47
Поделиться
Просто указывая на откровенно очевидное: если у вас нет «Показать окно вывода при запуске сборки», убедитесь, что вы заметили, что ваша сборка не работает (небольшая ошибка «build failed» в левом нижнем углу)!!!
tbone
09 июль 2015, в 19:19
Поделиться
Если у вас есть место в имени вашего решения, это также вызовет проблему. Удаление пространства из имени вашего решения, поэтому путь не содержит %20.
Ajaco
17 июнь 2015, в 17:29
Поделиться
Я использую Visual Studio 2013.
Похоже, что зависимости сборки были неправильными. Удаление файлов *.suo решило проблемы, которые у меня были.
DrBB
09 апр. 2015, в 20:49
Поделиться
Эта ошибка может быть показана, если вы используете поддельные сборки. Удаление подделок приводит к успешной сборке проекта.
FLCL
05 дек. 2014, в 14:53
Поделиться
У меня был класс в 4.6.1, обновляющий интерфейс, который был в 4.6.2… обновление класса до 462 исправило его.
Antonin GAVREL
17 сен. 2018, в 15:23
Поделиться
Удаление папки с packages
содержащей NuGet, в папке решения работало для меня. После восстановления все снова заработало. Проверьте References
в решении и проверьте ссылки, которые имеют желтый треугольник.
Пример изображения:
Ogglas
17 янв. 2017, в 13:06
Поделиться
В моем случае у меня была эта ошибка, потому что один из моих проектов использовал версию платформы .NET, отличную от других решений. Я использовал менеджер пакетов NuGet для установки NLog, поэтому, я думаю, он был установлен для .Net-версии этого проекта.
Я попробовал все решения из этого поста, но ни один не работал. Я удалил NLog, очистил решение и попытался скомпилировать: то же самое, ошибка CS006.
Когда я удалил все файлы в objDebug
из этого проекта, решение было скомпилировано.
Pierre-Olivier Pignon
19 окт. 2016, в 06:04
Поделиться
В моем случае эти ошибки были вызваны некоторыми повреждениями в менеджере пакетов NuGet. Подпроекты решения не создавались, но ошибок не было из-за ошибок метаданных.
После того, как все пакеты NuGet были исправлены, проект снова может быть собран правильно.
Nick
12 дек. 2015, в 20:29
Поделиться
У меня была похожая проблема, когда я декомпилировал очень старую библиотеку, которая была развернута в производственной среде, но исходный код был утерян.
Я взял .dll, декомпилировал и сгенерировал проекты и решения. Я не смог построить решение из-за нескольких ошибок такого рода.
Советы в предыдущих ответах не помогли, но через некоторое время я заметил пропущенные ссылки в некоторых проектах на несколько сборок, таких как System.dll.
Предположим, что существует проект A, зависящий от проекта B. В проекте B не было ссылки на System.dll, но ошибка после сборки выглядела как «Файл метаданных» B.dll «не найден».
Не было ошибки об отсутствии System.dll в проекте B.
Добавление ссылки на библиотеки типа System.dll в проекте B решило проблему. (System.Data, System.DirectoryServices и т.д.)
drfaka
05 июнь 2015, в 07:37
Поделиться
У меня была такая же проблема. В моем случае проект все равно будет построен в режиме выпуска, и именно тогда я попытался построить отладку, чтобы она не удалась.
Что я решил сделать, чтобы исправить эту проблему, просто скопировал все DLL (и другие файлы из моей папки выпуска) в мою папку отладки. После выполнения этого для каждого проекта ошибки исчезли.
Jack Fairfield
13 май 2015, в 19:52
Поделиться
Я получил эту ошибку после открытия проекта, в котором была ссылка на Entity Framework, поэтому я удалил такие ссылки и переустановил Entity Framework версии 6.0.0.0 через pcket-менеджер следующим образом:
install-package entityframework -version 6.0.0.0
Ошибка все еще показывалась, поэтому я подумал, что эти ссылки были там, потому что в проекте была более ранняя версия Entity Framework, предположительно «предустановленная», но на самом деле она не работала.
Поэтому я подошел к файлу packages.config
и заметил, что есть еще одна ссылка:
<packages>
**<package id="EntityFramework" version="5.0.0" targetFramework="net45" />**
<package id="EntityFramework" version="6.0.0" targetFramework="net45" />
</packages>
Затем я удалил строку, очистил и перестроил проект и контейнерное решение, и оно наконец заработало.
CoderRoller
06 март 2015, в 20:52
Поделиться
На основании сообщения об ошибке я не верю, что путь к файлу усекается. Это выглядит просто неправильно. Если я правильно читаю сообщение, оно, похоже, ищет файл DLL в…
РАБОЧИЕ = -ToolsVersionManagementSystemBusinessLogicLayerBinDebugBusinessLogicLayer.dll
Это неверный путь. Возможно ли, что у вас есть определение макроса в процессе сборки, установленное на недопустимое значение?
JaredPar
14 сен. 2009, в 15:44
Поделиться
В моем случае ReSharper был глуп, и, хотя мой проект нацелен на С# 6, мне предлагали рефакторинг для использования функций только С# 7.
По этой причине я закончил тем, что изменил этот код,
private DateTime? _joinedDate;
[Column(TypeName = "DateTime2")]
public DateTime JoinedDate
{
get { return _joinedDate ?? DateTime.Now; }
set { _joinedDate = value; }
}
в этот код:
private DateTime? _joinedDate;
[Column(TypeName = "DateTime2")]
public DateTime JoinedDate
{
get => _joinedDate ?? DateTime.Now;
set => _joinedDate = value;
}
По какой-то причине использование getter и setter с использованием тел выражений заставило компилятор выдавать ошибку метаданных вместо синтаксической ошибки.
Mathieu VIALES
14 июль 2017, в 13:50
Поделиться
aaaaaand шесть лет спустя во время обновления до Visual Studio 2015 такая же проблема. Поскольку это конкретное решение отсутствует в этом списке, я добавляю к нему.
Две ссылочные dll находились в папке c:windowssystem32….
Перемещение их в не системную папку и добавление ссылки на новую папку наконец-то исправили. Остальные вопросы были действительно тем, что уже говорили здесь уже
Serve Laurijssen
23 июль 2015, в 10:54
Поделиться
В моем личном случае я не смог добавить ссылку на один из проектов в решении, и это то, что вызывало ошибку для меня.
Jon D
14 авг. 2014, в 10:51
Поделиться
Причиной проблемы может быть смешанное добавление ссылок на файлы DLL и проекты в решении.
Если у вас есть проекты A, B и C:
- Ссылки B и C как проекты в решении.
- B ссылается на C как файл DLL (ссылка на файл)
Вы можете построить каждый проект отдельно, но не можете перестроить решение, заканчивающееся на: файл метаданных ‘C.dll’ не найден.
Помогает изменение ссылки из файла на проект в решении.
Liero
05 авг. 2014, в 10:05
Поделиться
У меня была эта проблема, потому что .nugetNuGet.exe
не был включен в мой репозиторий. Хотя я включил DownloadNuGetExe
в NuGet.targets, он сообщал об ошибке прокси при попытке загрузить его. Это привело к сбою остальных сборок проекта.
wtjones
20 май 2014, в 20:33
Поделиться
Моя проблема возникла, когда я написал код на С# 7, но проект использовал более старую версию для .net Framework
Abdullah Tahan
26 нояб. 2018, в 08:32
Поделиться
В моем случае я получил это сообщение об ошибке по той простой причине, что после получения последней версии проекта из TFS неправильный проект в решении был помечен как стартовый проект. Выбор правильного проекта в качестве запуска проекта решил это для меня.
Joe Dyndale
05 март 2018, в 16:50
Поделиться
Как указывает пользователь @burzhuy, может быть важно взглянуть на окно Output
, а не только на окно Error List
.
В моем случае я работал над внесением изменений в компилятор Roslyn. Его проекты сборки запускают дополнительную проверку, чтобы увидеть, согласуются ли открытые поля с тем, что было определено как открытый интерфейс компилятора, в противном случае он выдает ошибку RS0016 или RS0017. Я добавил пару открытых полей и исправил ошибку RS0016, наведя указатель мыши на ошибку и выбрав «Добавить в публичный API».
Позже я передумал и перевел общедоступные поля в другой класс. По какой-то причине это привело к ошибке «Файл метаданных не найден», и чем больше я возился с этим, тем больше ошибок я получал.
Вам нужно найти правильный файл PublicAPI.Unshipped.txt
(в моем случае это был E:Roslyn32414srcCompilersCorePortable
) и отредактировать его вручную, чтобы удалить E:Roslyn32414srcCompilersCorePortable
строки.
RenniePet
25 фев. 2018, в 16:47
Поделиться
Для меня проблема была в том, что у меня было открыто два окна Visual Studio, мой проект выполнялся в режиме отладки в одном окне, и я попытался построить его в другом.
Мне пришлось прекратить отладку, а затем он позволил мне построить успешно.
Mykhailo Seniutovych
25 сен. 2017, в 16:22
Поделиться
Я столкнулся с этой проблемой. В моем случае несколько С# проектов упоминались как файлы DLL. Любая ошибка времени компиляции в проекте, который используется как файл DLL (в других проектах), может привести к потоку ошибок. Причина в том, что ошибка времени компиляции предотвращает создание соответствующего файла DLL, и это приводит к серии ошибок в проектах, которые ссылаются на отсутствующий файл DLL.
Поэтому, когда вы перестраиваете в Solution Explorer (игнорируя тривиальные ошибки времени компиляции), возникает куча ошибок «файл метаданных .dll не найден» (что заставляет вас думать, что вы сделали не так, как простое перестроение).
Если вы столкнулись с этой проблемой, то лучшим решением будет очистить решение и затем построить каждый проект один за другим, чтобы выяснить, какой проект инициирует ошибку.
josepainumkal
25 июль 2017, в 20:01
Поделиться
Эта проблема может возникнуть из-за синтаксической ошибки в вашем коде, которая может быть не видна вам из-за ошибки метаданных. Поэтому просмотрите исходный файл, прежде чем выполнять какие-либо действия в предыдущих ответах.
Hassan Malik
24 апр. 2017, в 07:40
Поделиться
Я столкнулся с этой ошибкой в Visual Studio 2015, когда удалил аннотацию типа из вызова метода расширения, из-за которого остались только пустые угловые скобки.
Поэтому вместо obj.extensionMethod<Type>()
меня был obj.extensionMethod<>()
.
Я бы классифицировал это как ошибку в Visual Studio, так как не вижу, как эта ошибка может привести к этой ошибке.
mschwaig
21 июль 2016, в 21:27
Поделиться
Вау, похоже, что эта ошибка может прийти отовсюду.
В любом случае, я добавил новый контроллер WebAPI в свое приложение MVC, и он автоматически получил все ссылки от NuGet. Чуть позже я удалил ссылки из интерфейса NuGet, но я забыл удалить файлы, используя их (например, System.Http
).
По какой-то причине я получил сообщение об ошибке, а также простое предупреждение о том, что переменная не используется.
Я закомментировал переменную, чтобы избавиться хотя бы от предупреждения, и перестройка указала мне на все файлы, которые использовали несуществующую ссылку. После удаления этих файлов все прошло нормально.
Alexander D
21 июль 2016, в 15:36
Поделиться
Я выяснил, что если вы удалите сборку Microsoft.CSharp в качестве ссылки в проекте, вы получите эту ошибку.
Mirek
21 нояб. 2015, в 21:49
Поделиться
- Щелкните правой кнопкой мыши на решении и нажмите «Очистить».
- Щелкните правой кнопкой мыши на решении и нажмите «Восстановить».
abdullah almoshaighe
07 окт. 2014, в 18:02
Поделиться
Когда я делал сборку, в Visual Studio 2017 обычно отображались такие ошибки:
Error CS0006 Metadata file 'C:srcProjectDirMyAppbinx64DebugInspection.exe' could not be found MyApp C:srcProjectDirMyAppCSC 1 Active
Но иногда такая ошибка будет отображаться в течение пары секунд, а затем она исчезнет и переключится обратно на указанное выше сообщение:
Error CS1503 Argument 1: cannot convert from 'MyApp.Model.Entities.Asset' to 'MyApp.Model.Model.Entities.Inspection' MyApp C:srcProjectDirMyAppViewModelsAssetDetailsViewModel.cs 1453 Active
Поэтому я потратил время на устранение первой ошибки, но настоящая проблема оказалась из-за второй ошибки. Сначала мне пришлось удалить все каталоги /bin и /obj, затем я также удалил файлы .suo, как указано выше. Это позволило мне сузить проблему до проблемы интерфейса.
В моем интерфейсе у меня было это:
Task<IList<Defect>> LoadDefects(Asset asset);
Но в моей реальной реализации у меня был этот код:
public virtual async Task<IList<Defect>> LoadDefects(Inspection inspection)
{
var results ...
// ....
return results;
}
Сборка успешно завершена после того, как я обновил интерфейс до этого:
Task<IList<Defect>> LoadDefects(Inspection inspection);
Таким образом, похоже, что кеширование в VS заставляло его отображать ошибку CS0006, когда настоящей проблемой была ошибка CS1503.
user8128167
29 янв. 2019, в 22:42
Поделиться
В моем случае в моем файле Web.config
это
<?xml version="1.0" encoding="utf-8"?>
к этому
<?xml version="1.0"?>
исправил мою проблему
Elnoor
16 нояб. 2018, в 22:06
Поделиться
У меня была такая же проблема и другое решение.
Вопрос: одно решение, несколько проектов. Основное приложение, которое использует некоторые другие результаты, не удалось, сказав:
CSC: ошибка CS0006: файл метаданных ‘C:ReposTheApplicationTheApplicationCommonbinDebugTheApplication.dll’ не найден
Но на самом деле этот проект сгенерировал C:ReposTheApplicationTheApplicationCommonbinDebugTheApplicationCommon.dll
Другой проект, который также использует ту же самую DLL, скомпилированную без нареканий.
Прежде чем я обновил внутренний NuGet-пакет, который использовал PostSharp 3.xxx и теперь использует PostSharp 4.xxx, я решил добавить это в мой файл *.csproj:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="...">
<Import Project="..." Condition="..." />
<PropertyGroup>
...
<AssemblyName>TheApplication</AssemblyName>
...
<SkipPostSharp>True</SkipPostSharp> <!-- This line -->
</PropertyGroup>
...
Другая Solution-> Clean, другая Solution-> Перестройка, и она работает локально и на сервере сборки.
Надеюсь, это поможет кому-то. Поток старый и довольно длинный, но эта проблема часто возвращается, и я пока не видел этого решения. Кстати, с использованием Visual Studio 2017 (15.8.x).
ecth
09 окт. 2018, в 13:06
Поделиться
Visual Studio IDE не создает никаких закулисных структур, как это делает приложение Msbuild. VS IDE, по сути, просто создает файл проекта, который используется Msbuild, и довольно часто он делает ошибки, если вы оставляете его на усмотрение IDE, чтобы самому разобраться. Если вы получаете Metadata file '.dll' could not be found
ошибку, скорее всего, из-за того, что правильные/ожидаемые сборки не найдены. Так что, возможно, Visual Studio может создавать файл проекта для приложения платформы 4.5 и ожидать 4,5 сборки, пока вы ссылаетесь на сборки 4.0. Поэтому посмотрите на свои настройки Visual Studio на предмет несовместимости или зайдите в файл проекта и вручную исправьте его, указав правильный путь <Reference Include="C:\correct path to assembly\yourAssembly.dll"/>
.
annoying_squid
20 сен. 2018, в 15:08
Поделиться
Для меня проблема заключалась в ошибке, которая не появлялась в выходных данных сборки, а именно, у меня было два служебных класса, которые изначально находились в разных пространствах имен. Я изменил пространство имен второго, чтобы оно соответствовало первому (не зная, что в первом был еще один вспомогательный класс), и когда эта ошибка начала появляться.
Я полагаю, что возникла ошибка при сборке, потому что DLL файл библиотеки Logic Layer не мог быть собран, и основное приложение не смогло его найти.
Решение состояло в том, чтобы вернуть второй служебный класс на другое пространство имен, и тогда, когда начали появляться реальные ошибки сборки. После их сортировки сборка прошла нормально.
В качестве обзора, если какое-либо из предыдущих решений не работает для вас, возможно, вы подавили ошибки в коде, который не отображается в Visual Studio, поэтому попробуйте еще раз отследить этапы кодирования и проверить наличие ошибок.
PS: это было в Visual Studio 2015 Community Edition
Remus.A
06 фев. 2018, в 11:37
Поделиться
В моем случае у меня была куча других ошибок сборки (несколько простых преобразований типов) наряду с этой, я почесал голову, пытаясь решить эту проблему, и я не фокусировался на других ошибках.
В конце концов, моя проблема была решена тем, что я исправил все остальные ошибки сборки, а затем снова собрал, и он был успешно собран.
Таким образом, в случае, если у вас есть другие ошибки сборки наряду с отсутствующей ошибкой DLL файла, и ничего больше не работает для вас, попробуйте сначала исправить другие ошибки, а затем снова построить решение.
Fakhar Ahmad Rasul
02 фев. 2018, в 22:09
Поделиться
В моем случае установка целевой платформы решила проблему:
-
Щелкните правой кнопкой мыши по проекту и выберите «Свойства».
-
В приложении измените целевую платформу на ту же, что и у основного проекта (например, «.NET Framework 4.5»).
Hamid
03 янв. 2018, в 14:40
Поделиться
Ни один из десятков ответов до сих пор не работал для меня. В моем случае я тоже получил ошибку:
Имя элемента кортежа ‘Value’ выводится. Пожалуйста, используйте языковую версию 7.1 или выше для доступа к элементу по его предполагаемому имени
Это появилось рядом с ошибками «Файл метаданных .dll» не удалось найти «при сборке, но вскоре исчезло, поскольку ошибки иногда возникают, когда среда IDE» догоняет «.
Двойной щелчок по ошибке, чтобы найти ее, и удаление кода, вызывающего проблемы, исправляет ее.
В противном случае вы можете попробовать это в Visual Studio:
Меню Проект → <Имя проекта> Свойства → Построить → кнопка Дополнительно → Языковая версия → С# <последняя дополнительная версия> (например, «С# 5.0»)
И это тоже исправляет.
Похоже, что «файл метаданных ‘.dll’ не найден» часто является признаком некоторых других основных проблем, поэтому, если ни одно из лучших решений не работает для вас, проверьте другие ошибки и предупреждения и попытайтесь найти реальную проблему.
MGOwen
18 авг. 2017, в 07:14
Поделиться
Я видел эту ошибку, потому что у меня была следующая строка в моем коде (похоже, я все еще думал в режиме SQL):
if(myVar is null)
DoSomething();
Visual studio (2017) не сообщала об ошибках при проектировании или компиляции, однако проект не собирался и выдавал ошибку «missing.dll». При изменении ошибочной строки на:
if(myVar == null)
Проблема решена.
Gavimoss
01 авг. 2017, в 18:21
Поделиться
У меня появилась эта проблема после того, как я сильно изменил решение, отложил изменения и отменил их.
Единственный способ решить эту проблему — удалить и снова добавить отображение из TFS в мою локальную папку.
NoHero
06 июль 2017, в 14:22
Поделиться
Ни одно из предыдущих решений не сработало для меня, поэтому я поделюсь тем, что сделал.
У меня была эта проблема после слияния некоторых новых библиотек классов из другой ветки, которые ссылались друг на друга. Удаление ссылок в проектах и воссоздание их, наконец, решило проблему. Очевидно, Visual Studio слилась по неправильным путям к файлам.
Nick Van Brunt
02 март 2017, в 20:38
Поделиться
Я столкнулся с этой проблемой после getting latest
(команда Team Foundation Server (TFS)).
После разрешения конфликтов я обнаружил использование оператора для namespace that does not exist in the project
.
Поэтому я удалил оператор using
затем clean and rebuild
, и все было в порядке.
Basheer AL-MOMANI
07 дек. 2016, в 10:12
Поделиться
Очень странно! Я перепробовал все предыдущие ответы и, к сожалению, в моем случае ничего не получалось.
Я столкнулся с двумя ошибками:
- Отсутствует файл .dll
- Метод уже определен в другом месте с такими же параметрами
Сначала я очистил вторую ошибку, удалив функцию, дублированную в другом месте.
Моя первая ошибка — отсутствие файла .dll — решила сама.
Я хочу сказать, если у вас есть более одной ошибки наряду с ошибкой отсутствующего файла .dll, пожалуйста, попробуйте сначала решить другие ошибки. Может быть, ошибка .dll решает сама по себе!
A user
14 окт. 2016, в 10:16
Поделиться
Проверьте файл .csproj основного проекта. Visual Studio не очищает это, если вы удаляете проекты или изменяете ссылки в решении.
На старые проекты три раза ссылались в файле .csproj, и компиляция показала эту ошибку этим удаленным проектам.
Tarmo Elfving
07 июнь 2016, в 18:16
Поделиться
Ещё вопросы
- 1LWJGL — не работают списки отображения
- 1openpyxl — добавление новых строк в файл Excel с существующей объединенной ячейкой
- 1Общий метод — Тип не может использоваться в качестве параметра типа
- 0не могу установить ширину тега метки в CSS в Safari
- 1Не удалось при попытке создать AVD Android SDK
- 1Проблемы с p5.js при отображении альфа-канала
- 0Применение таблицы стилей к одному элементу
- 1Краткий способ объявить матовую матрицу
- 0Установить один регион не может быть выбран
- 1логиты и метки должны быть транслируемыми с ошибками в Tensorflow RNN
- 0Включение содержимого страницы PHP в другой
- 0Обработка формы с использованием jQuery
- 1Предотвращение окончания потока
- 0Кендо мобильный Scrollview. Сбросить вертикальную полосу прокрутки
- 0вставка данных таблицы в базу данных имеют одинаковые имена
- 0Заполните выпадающий список из другой таблицы MySQL — php
- 1Как запрограммировать проект для предотвращения DDoS-атаки
- 0угловая модель должна быть текстовой, а тип ввода должен быть временным
- 0Изменить цвет div на основе значения цвета из JSON
- 1Объекты, достижимые сильными или слабыми ссылками в Java
- 0Как считать записи, специально соответствующие другой строке в соединении
- 0Выберите два столбца и возьмите их
- 1Получить message_id из сообщения Telegram — node.js
- 0Перезаписать изображение в php при загрузке
- 0Удалите точки и косую черту в начале по ссылке
- 0Управлять результатами, хранящимися в «обещании»
- 0Как не вызывать директиву каждый раз, когда я перезагружаю страницу
- 0jQuery — анимируйте div без деформации контента.
- 0отключить ссылку якоря стоек после отправки запроса на действие
- 1Хранение статических данных в приложении для Android
- 0AngularJS заказать к дате
- 0Как сослаться на значение из той же строки в MySQL?
- 0подтвердить нажатием клавиши ввода
- 0input [radio] в Angular.js проблемы не определены и не проверены
- 0JQuery и JS работает на DOM, а не onLoad
- 0symfony2: вложенные множества с использованием RecursiveIteratorIterator
- 1SL4A — Сценарий для Android
- 0парсинг JSON с символом / в angularjs
- 1Просмотр не работает, Передача объекта для просмотра ошибки
- 0Как мне работать со свойствами ‘value’ и ‘text’ в столбце комбинированного списка jqGrid?
- 0MySQL, есть ли способ заменить символы utf8 в запросе выбора?
- 0Убедитесь, что длинная строка загружена в справочную базу
- 0Разобрать XML Feed с PHP, чтобы найти, если существуют конкретные данные
- 1Различное поведение @Override в методе OnPreferenceChangeListener.onPreferenceChange приложения Android 2.2 в зависимости от уровня исходного кода
- 1Бесконечный цикл, вызванный обработкой исключений
- 0Перегрузка перегруженного метода: есть ли упрощение?
- 1Обновление списка
- 0Переключайтесь между страницами каждые несколько минут
- 1Как заменить все числа, кроме конкретных чисел в Python?
- 0Переключение области отображения Javascript