Ошибка cs0006 не удалось найти файл метаданных dll

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

I have a Visual studio solution with several projects in it, specifically a DotNet5 asp.net app, that has several netstandard 2.0 references on it. it builds and runs fine in the debugger but continuously throws the metadata errors. It keeps specifically referencing its looking for a net5 folder in the netstandard2 project. I cannot find where its getting this from, the problematic one used to be a multitargeted project against framework 4.7, 4.8, and net5.0, but i got annoyed with the multiple dll’s and just migrated it to standard2.0 and had no issues till i want to publish it.

I’ve tried what a few other questions referenced, cleaning, rebuilding, remove and re add references to other projects, deleted the obj and bin folders out of the solution, the removing the sou file, tried VS 2019 (16.9.0 preview 2) preview vs 2019 (16.8.3) release, different computer (pulled back down from a lan git repository) and got the same error…. also tried searching the entire solution for references to net5.0 and didn’t find it outside of the expected locations like the csproj for the asp.net project and its respective pubxml. And just for fun, I temporarily retargeted the library project back to net5.0 and it still threw the same error even when the exact file and path listed did exist.

Using enters for the error below for the different columns in the error message, and removed the «sensitive» info. There is no error code provided by Visual Studio. Anyone else got any more ideas on what to try?

Error

Metadata file ‘C:UsersUserNamesourcereposSolutionProject 2binReleasenet5.0refProject 2.dll’ could not be found.

Project 1

CSC

0

Edit: adding a couple other sections of the error messages:

1/2/2021 7:38:55 PM
System.AggregateException: One or more errors occurred. ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.
   --- End of inner exception stack trace ---
---> (Inner Exception #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: Build failed. Check the Output window for more details.

===================

And the end of the output window since full thing is a bit too long. still can’t figure out where its getting the net5.0 for the one project reference

/reference:C:UsersUserName.nugetpackagessystem.xml.xpath.xmldocument4.0.1refnetstandard1.3System.Xml.XPath.XmlDocument.dll /reference:C:UsersUserName.nugetpackagesmysql.data8.0.22libnet5.0Ubiety.Dns.Core.dll /reference:"C:UsersUserNamesourcereposCheckNotesProject 3binReleasenetstandard2.0Project 3.dll" /reference:"C:UsersUserNamesourcereposCheckNotesProject 2binReleasenet5.0refProject 2.dll" /reference:C:UsersUserNamesourcereposCheckNotesProject 4binReleasenetstandard2.0Project 4.dll /reference:"C:Program FilesdotnetpacksMicrosoft.NETCore.App.Ref5.0.0refnet5.0WindowsBase.dll" /reference:C:UsersUserName.nugetpackagesmysql.data8.0.22libnet5.0Zstandard.Net.dll /debug+ /debug:portable /filealign:512 /optimize+ /out:"objReleasenet5.0CheckNotes Web - Core.dll" /refout:"objReleasenet5.0refCheckNotes Web - Core.dll" /target:exe /warnaserror- /utf8output /deterministic+ /langversion:9.0 /analyzerconfig:"objReleasenet5.0CheckNotes Web - Core.GeneratedMSBuildEditorConfig.editorconfig" /analyzerconfig:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.SdkanalyzersbuildconfigAnalysisLevel_5_Default.editorconfig" /analyzer:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.Sdk.WebanalyzerscsMicrosoft.AspNetCore.Analyzers.dll" /analyzer:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.Sdk.WebanalyzerscsMicrosoft.AspNetCore.Mvc.Analyzers.dll" /analyzer:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.Sdk.WebanalyzerscsMicrosoft.AspNetCore.Components.Analyzers.dll" /analyzer:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.Sdktargets..analyzersMicrosoft.CodeAnalysis.CSharp.NetAnalyzers.dll" /analyzer:"C:Program Filesdotnetsdk5.0.200-preview.20601.7SdksMicrosoft.NET.Sdktargets..analyzersMicrosoft.CodeAnalysis.NetAnalyzers.dll" ControllersAssemblyController.cs ControllersCheckNotesController.cs ControllersContactsController.cs ControllersCustomerController.cs ControllersHomeController.cs ControllersImageController.cs ControllersOperatorPagesController.cs ControllersPalletsController.cs ControllersSharedController.cs ControllersStatisticsController.cs ModelsControllerClassctrlrAssembly.cs ModelsControllerClassCtrlrCheckNotes.cs ModelsControllerClassctrlrContacts.cs ModelsControllerClassCtrlrCustomer.cs ModelsControllerClassCtrlrOperatorPages.cs ModelsControllerClassCtrlrPallet.cs ModelsControllerClassctrlrStats.cs ModelsDataClassAppSettings.cs ModelsErrorViewModel.cs ModelsrenderAction.cs Program.cs Startup.cs "objReleasenet5.0.NETCoreApp,Version=v5.0.AssemblyAttributes.cs" "objReleasenet5.0CheckNotes Web - Core.AssemblyInfo.cs" "objReleasenet5.0CheckNotes Web - Core.RazorAssemblyInfo.cs" /warnaserror+:NU1605
CSC(0,0): Error CS0006: Metadata file 'C:UsersUserNamesourcereposCheckNotesProject 2binReleasenet5.0refProject 2.dll' could not be found

10>Build failed. Check the Output window for more details.
========== Build: 9 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

Well, my answer is not just the summary of all the solutions, but it offers more than that.

Section (1):

In general solutions:

I had four errors of this kind (‘metadata file could not be found’) along with one error saying ‘Source File Could Not Be Opened (‘Unspecified error ‘)’.

I tried to get rid of ‘metadata file could not be found’ error. For that, I read many posts, blogs, etc. and found these solutions may be effective (summarizing them over here):

  1. Restart Visual Studio and try building again.

  2. Go to ‘Solution Explorer’. Right click on Solution. Go to Properties. Go to ‘Configuration Manager’. Check if the checkboxes under ‘Build’ are checked or not. If any or all of them are unchecked, then check them and try building again.

  3. If the above solution(s) do not work, then follow sequence mentioned in step 2 above, and even if all the checkboxes are checked, uncheck them, check again and try to build again.

  4. Build Order and Project Dependencies:

    Go to ‘Solution Explorer’. Right click on Solution. Go to ‘Project Dependencies…’. You will see two tabs: ‘Dependencies’ and ‘Build Order’. This build order is the one in which solution builds. Check the project dependencies and the build order to verify if some project (say ‘project1’) which is dependent on other (say ‘project2’) is trying to build before that one (project2). This might be the cause for the error.

  5. Check the path of the missing .dll:

    Check the path of the missing .dll. If the path contains space or any other invalid path character, remove it and try building again.

    If this is the cause, then adjust the build order.


Section (2):

My particular case:

I tried all the steps above with various permutations and combinations with restarting Visual Studio a few times. But, it did not help me.

So, I decided to get rid of other error I was coming across (‘Source File Could Not Be Opened (‘Unspecified error ‘)’).

I came across a blog post: TFS Error–Source File Could Not Be Opened (‘Unspecified error ‘)

I tried the steps mentioned in that blog post, and I got rid of the error ‘Source File Could Not Be Opened (‘Unspecified error ‘)’ and surprisingly I got rid of other errors (‘metadata file could not be found’) as well.


Section (3):

Moral of the story:

Try all solutions as mentioned in section (1) above (and any other solutions) for getting rid of the error. If nothing works out, as per the blog mentioned in section (2) above, delete the entries of all source files which are no longer present in the source control and the file system from your .csproj file.

Я знаю, что есть еще один вопрос с точно такой же проблемой, но я прошел через все эти ответы, и никто мне не помог. :( (вот в чем вопрос.)

Я только что создал новый ASP.NET проект MVC и присоединился к нескольким «.dll находится в решении. Теперь, когда я пытаюсь построить проект, я получаю сообщение об ошибке показано ниже на 3 из 5 библиотек.

Error   CS0006  Metadata file 'C:Users...sourceDatabasebinDebugDataAccessLayer.dll' could not be found   Logic   C:Users...sourceLogicCSC   1   Active

Error   CS0006  Metadata file 'C:Users...sourceLogicbinDebugLogic.dll' could not be found    PTS2-MVC    C:Users...sourcePTS2-MVCCSC    1   Active

Error   CS0006  Metadata file 'C:Users...sourcePTS2-MVCbinPTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:Users...sourcePTS2-MVC.TestsCSC  1   Active

когда я иду в папку bindebug этого .dll, я вижу, что он пуст, а другой .dll, где I не получите сообщение об ошибке, не пусто. Но я не знаю, как это исправить или что я сделал, чтобы это произошло.

самый распространенный ответ-перейти к свойства на решение и перейти к конфигурация и убрать ->применить ->Регистрация и применить снова, но это не сработало

17 ответов


хорошо, я исправил это сейчас, проблема заключалась в том, что у меня были некоторые другие обычные сообщения об ошибках в моем проекте, и, по-видимому, после того, как я исправил их, и когда я очистил и построил свой проект снова, то все .библиотеки DLL удалось :Д

поэтому для других людей с этой проблемой в будущем: убедитесь, что у вас нет других сообщений об ошибках в вашем проекте, и если вы это сделаете, сначала исправьте их!

Я хотел бы поблагодарить вас всех за помощь!


шаги по исправлению этой ошибки: файл метаданных .dll не удалось найти.

  1. Очистить Все Проекты.

  2. Выгрузить Все Проекты.

  3. Обновить Все Проекты.

  4. Перестроить Решение.

затем проблема решена.


в моем случае произошла ошибка, но она не была должным образом проанализирована VS и показана в окне «список ошибок». Чтобы найти его, вы просматриваете ol «Output» из окна сборки и анализируете сообщения, начинающиеся сверху вниз, и разрешаете фактическую ошибку. M$, пожалуйста, исправьте! Это огромная трата времени коллективными разработчиками миров.


У меня была эта проблема с решением, содержащим несколько проектов.

Я думаю, это произошло от дублирования a .csproj файл и добавление копии в решение. А .csproj файл содержит <ProjectGuid> элемент. Я установил GUID скопированного проекта на новый.

Я также выполнил следующие шаги:

  1. закрыть решение
  2. удалить папку bin
  3. удалить все obj папки
  4. открыть решение и построить

дважды проверьте имя папки проекта. В моем случае моя папка проекта была названа с пробелами в ней. Когда я клонировал проект из Team Foundation Server с помощью Git bash, пробелы в имени папки были преобразованы в: «%20». Изменение их обратно в пробелы исправило проблему для меня.


еще одна вещь, которую вы должны проверить, — это целевая платформа любых ссылочных проектов, чтобы убедиться, что вызывающий проект использует ту же или более позднюю версию платформы.

У меня была эта проблема, я попробовал все ранее предложенные ответы, а затем на интуиции проверил рамки. Один из проектов, на который ссылались, был нацелен на 4.6.1, когда вызывающий проект был только 4.5.2.


у меня такая же проблема, проблема в том, что путь решения имеет пробелы в имени и vs по какой-то причине не разрешает пакет… загрузите мой репозиторий снова, просто переименовав решение с пробелами в имени.

Эл.г:

/Repo/Project Name/src

должно быть

/Repo/ProjectName/src

в моем случае я столкнулся с той же ошибки. Одним из моих проектных решений была ссылка на сборку из другого местоположения NuGet. Я просто изменил его, чтобы исправить местоположение, чтобы решить эту ошибку и перестроить. и ничего себе проект получить построить успешно, и все остальные ошибки ушли.


запуск этой команды в bash для удаления всех бункеров работал для меня

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

Не могу гарантировать, что он будет работать для кого-то еще, хотя

также имейте в виду, что он удалит все файлы bin-поэтому вам придется перестроить все проекты. Очевидно, лучше всего cd в соответствующий каталог перед его использованием.

1

автор: Yair Halberstadt


эта проблема возникает при переименовании решения и .NET framework не удается найти старое решение.

чтобы решить эту проблему, вам нужно найти и заменить старое имя и все зависят от него с новым именем. Если вам нужно просмотреть физический файл через проводник, сделайте это.

файлы, которые обычно затрагиваются AssemblyInfo.цезий. ,sln и свойства>приложение>имя сборки и пространство имен по умолчанию. Обязательно обновите их с помощью новое имя.

Откройте проводник, если папка со старым именем все еще существует, вам нужно удалить ее. Затем очистите и создайте решение, пока ошибка не исчезнет. (При необходимости очистите и постройте проект Один за другим, особенно затронутый проект.)

надеюсь, это поможет.

1

автор: John Carlo Diocadiz


я исправляю эту проблему, выполнив следующие шаги:

  1. Очистить Решение
  2. Закрыть Visual Studio
  3. удаление / bin из каталога проекта
  4. Перезапустите Visual Studio
  5. Перестроить Решение

для меня уборка и строительство не работали. Разгрузка проекта не сработала. Перезапуск Visual Studio или даже ПК не работал. Вот что сработало:

перейдите к каждому из проектов, которые вызывают ошибку, и в ссылках удалите ссылку на проблемный проект и добавьте его снова. Это решает проблему.

проблема, похоже, связана с перемещением проекта (например, переместить его в папку), а затем другой проект, который ссылается на него, имеет свой путь неправильно и не может его найти.


очистка моего решения вызвала эту проблему с Visual Studio 2017. Разгрузка / перегрузка проектов или больше очистки не имели никакого значения. Единственное, что сработало, — это закрытие и перезапуск Visual Studio.


проверьте, что все проекты загружены. В моем случае один из проектов был выгружен, и перезагрузка проекта очищает ошибки.


У меня была такая же ошибка. В моем случае я построил библиотеку (назовите ее commsLibrary), которая ссылалась на другие библиотеки, включив их в качестве проектов в мое решение. Позже, когда я построил проект и добавил свой commsLibrary, всякий раз, когда я буду строить, я получил файл метаданных не может быть найден ошибка. Поэтому я добавил библиотеки, которые Моя библиотека comms ссылалась на текущий проект, затем он смог построить.


У меня была та же проблема, даже без каких-либо других ошибок, отображаемых в представлении «список ошибок» после «перестроить решение». Однако в представлении «вывод» я увидел ошибку, которая стояла за проблемой:

основная ссылка » C:…примет вид myproj.dll » не удалось решить, потому что он был построен против «.NETFramework, версия=v4.6.1 » рамки. Это выше, чем в настоящее время целевой платформы «.NETFramework, версия=v4.5»

Как только я исправил это, проблема была решенный.


в моем случае, мне пришлось открыть .файл csproj и добавьте ссылку вручную, например (Microsoft.Увеличение.Тождественность.Хранилище.dll отсутствовала):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>........Program FilesdotnetsdkNuGetFallbackFoldermicrosoft.extensions.identity.stores.0.1libnetstandard2.0Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>

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

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

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

В общем решения:

У меня было четыре ошибки такого типа («файл метаданных не найден»), а также одна ошибка: «Не удалось открыть исходный файл (» ошибка не определена «)».

Я пытался избавиться от файла метаданных не удалось найти ошибку. Для этого я прочитал много постов, блогов и т.д. И обнаружил, что эти решения могут быть эффективными (обобщая их здесь):

  1. Перезапустите Visual Studio и повторите сборку.

  2. Перейдите в «Обозреватель решений». Щелкните правой кнопкой мыши на Решение. Перейти к свойствам. Перейдите в «Диспетчер конфигурации». Проверьте, установлены ли флажки под «Build» или нет. Если какие-либо или все из них не отмечены, то проверьте их и попробуйте построить заново.

  3. Если вышеуказанные решения не работают, следуйте последовательности, упомянутой в шаге 2 выше, и даже если все флажки установлены, снимите их, проверьте снова и попробуйте выполнить сборку заново.

  4. Порядок сборки и зависимости проекта:

    Перейдите в «Обозреватель решений». Щелкните правой кнопкой мыши на Решение. Перейти к «Зависимости проекта…». Вы увидите две вкладки: «Зависимости» и «Порядок сборки». Этот порядок сборки является тем, в котором строится решение. Проверьте зависимости проекта и порядок сборки, чтобы убедиться, что какой-либо проект (скажем, «проект1»), который зависит от другого (скажем, «проект2»), пытается построить этот проект (проект2). Это может быть причиной ошибки.

  5. Проверьте путь к отсутствующему .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>
...

Итак, простое исправление действительно:

  1. Сделайте резервную копию вашего .csproj файла.
  2. Найдите неправильные пути в файле .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 в решении и проверьте ссылки, которые имеют желтый треугольник.

Пример изображения:

Изображение 1033

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

Поделиться

В моем случае установка целевой платформы решила проблему:

  1. Щелкните правой кнопкой мыши по проекту и выберите «Свойства».

  2. В приложении измените целевую платформу на ту же, что и у основного проекта (например, «.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

Поделиться

Очень странно! Я перепробовал все предыдущие ответы и, к сожалению, в моем случае ничего не получалось.

Я столкнулся с двумя ошибками:

  1. Отсутствует файл .dll
  2. Метод уже определен в другом месте с такими же параметрами

Сначала я очистил вторую ошибку, удалив функцию, дублированную в другом месте.

Моя первая ошибка — отсутствие файла .dll — решила сама.

Я хочу сказать, если у вас есть более одной ошибки наряду с ошибкой отсутствующего файла .dll, пожалуйста, попробуйте сначала решить другие ошибки. Может быть, ошибка .dll решает сама по себе!

A user
14 окт. 2016, в 10:16

Поделиться

Проверьте файл .csproj основного проекта. Visual Studio не очищает это, если вы удаляете проекты или изменяете ссылки в решении.

На старые проекты три раза ссылались в файле .csproj, и компиляция показала эту ошибку этим удаленным проектам.

Tarmo Elfving
07 июнь 2016, в 18:16

Поделиться

Ещё вопросы

  • 1Подсчет символов в предложении
  • 0PHP Как передать параметр URL в другой URL
  • 1осваивать Picasa с помощью Android
  • 1Установите xTime в состояние внутри KeyEvent
  • 1Python: добавление столбца к существующей таблице в PrettyTable
  • 0jQuery Grid в SEO
  • 1Какова продолжительность жизни статической переменной
  • 0M-to-M отношение MySQL запрос
  • 1Обнаружение ключевого кода в AZERTY vs. QWERTY
  • 1Использование регулярного выражения для подсчета количества пробелов в начале строки [duplicate]
  • 1Имя «Контейнер» как объекта недопустимо в OData Web API.
  • 1Python: извлечь столбец данных из нескольких текстовых файлов
  • 0filter () работает не так, как я ожидаю при использовании $ (this)
  • 1передача значений между двумя потоками, не мешая друг другу
  • 0Как вставить значение эха в переменную? [Дубликат]
  • 0PhpMyAdmin Размер экспорта
  • 1Статические переменные в Android
  • 0API устройства Cublas выводит странный результат
  • 0Запуск фильтра из консоли для проверки значения
  • 1Почему созданный класс Android называется R?
  • 1Настройка IMediaPlaybackService
  • 0Как добавить HTML / текст в Zend-форму htmlTag?
  • 0Выбор углового списка с библиотекой двойного списка
  • 0Как я могу получить значение класса span
  • 0PHP конвертировать MongoDB objectID
  • 1Как устранить исключение «weblogic.application.ModuleException: путь к контексту» уже используется модулем: / application »?
  • 0нет разрешения на доступ к / на этом сервере. но я могу получить доступ к phpmyadmin
  • 1Не удается правильно отобразить легенду Leaflet
  • 0MySQL вложенный запрос не работает с условием AND
  • 0Строка не обновляется
  • 1Android, я должен сделать MediaPlayer сервисом?
  • 1Модульное тестирование Vue — textContent не содержит ожидаемых propsData
  • 0AngualrJS переключает блоки на выбор радио
  • 0Оптимизировать запрос, который группирует результаты по полю из объединенной таблицы
  • 0Перезаписать текущую тему в YII
  • 0Как можно использовать Express JS вместе с Google Chart
  • 0Ошибка формулы PHPExcel
  • 1OnClickListener не запускается из родительского класса
  • 1попробуйте выполнить задачу n раз, прежде чем выдать ошибку [duplicate]
  • 0stringByEvaluatingJavaScriptFromString не работает в iOS 7
  • 1Использование LinearLayout
  • 0Javascript воспроизводит звук в Firefox
  • 1Как отправить данные с асинхронного сервера сокетов Python в подпроцесс?
  • 0ожидается путь для присоединения JPA Hibernate MySQL
  • 0Как перебирать div, не зная, что просматривал пользователь и что он хочет посмотреть
  • 0Отображение тега div в текстовом поле
  • 1Черное поле под панелью приложения
  • 0Изменение времени цикла Jquery относительно количества данных в таблице
  • 0Не удалось получить значение, которое передается между страницами
  • 0HTML-оператор выбора и кнопка не работают с PayPal

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:

  1. 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.
  2. Fix nugget, enter in the nugget console

and execute Nuget restore SolutionName.sln

  1. 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.
  2. 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.    

Начал писать приложение. Использую 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

ddf37a4bbc82438b878ad687ea7e8cb4.jpg

Вот вывод 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 ==========

Я не пойму, библиотеки не копируются в папку, в которую помещаются все скомпиленные библиотеки и эксешники?

Файл метаданных… не удалось найти ошибка при создании проектов


Каждый раз, когда я запускаю Visual Studio 2008, при первой попытке запустить проект я получаю сообщение об ошибке CS0006. Файл метаданных … не может быть найден. Если я сделаю перестройку полного решения, оно будет работать.

Немного информации о решении:

  • Я работаю в режиме отладки, и Visual Studio жалуется, что не нашел dll: s в папке выпуска.

  • Проекты, на которые жалуется Visual Studio, используются во многих других проектах решения.

  • Я изменил путь вывода по умолчанию для всех проектов на …… build debug ProjectName и …… build release ProjectName соответственно. (Просто чтобы собрать все файлы сборки в одном каталоге)

  • У меня такая же проблема с другим решением.

  • Решение создавалось с нуля.

  • В решении 9 проектов. Один WPF и 8 библиотек классов с использованием dotnet 3.5.

Есть идеи о том, что вызывает эту проблему?


Ответы:


У меня была аналогичная проблема, когда «не удалось найти метаданные». в свойстве решения убедитесь, что в диспетчере сборки / конфигурации для каждого проекта установлен флажок «сборка» .






Обычно это вызвано тем, что проект упоминается в другом решении, нежели тот, который вызывает ошибку. Если вы очистите другое решение или разветвите код, вы, скорее всего, увидите эту ошибку. Решение состоит в том, чтобы прокрутить список ошибок типа «метаданные не найдены» и посмотреть ссылки на проекты. 9 из 10 раз вы увидите неработающую ссылку на проект, которого нет в этом решении. Добавьте проекты, чтобы исправить опорные ошибки, и перестройте. Это должно исправить это.

(Я столкнулся с этим только сегодня, и в прошлом, и это ВСЕГДА работало)



У меня была эта проблема, я не уверен, поможет ли она, но моя была вызвана наличием двух разных версий одного и того же проекта, на которые ссылаются два разных решения. Когда я построил решение со ссылкой на правильный проект первым, второе решение будет работать нормально, однако, если я очистил первое решение и попытался построить второе решение, это не помогло бы с этими сообщениями об ошибках ссылки dll.

Решение для меня заключалось в том, чтобы выяснить, что у меня есть два проекта с одинаковым именем, которые были случайно продублированы, и удалить ссылку на старый неправильный проект и добавить ссылку на новый.

В любом случае кажется, что эти сообщения — отвлекающий маневр, я бы проверил вывод вашей сборки и нашел первый проект, который не удалось собрать, и очень внимательно проверил ссылки на этот проект.



Еще одна вещь, которую нужно проверить, — это длина пути … что вызывает также не найденный файл метаданных и ошибки компиляции … Я просто переименовал свои папки в более короткие пути и вуаля, классы, которые не были распознаны и остались черными, стали синими просто путем переименования Папка.


Для меня у меня был проект, упомянутый в другом проекте. Он не показал, что он был поврежден в списке ссылок в окне проводника решений, но я все равно удалил и прочитал его. Теперь он строится просто отлично!



Я прошел все эти шаги в VS2012, но я продолжал сталкиваться с этой проблемой при создании решения в целом (отдельные проекты были созданы отлично, без ошибок).

Я обнаружил, что если вы щелкните правой кнопкой мыши свое решение в обозревателе решений и выберите «Порядок сборки», вы увидите порядок, который VS использует для восстановления вашего решения. Скорее всего, вышло из строя.

Вы можете исправить порядок сборки, щелкнув вкладку «Зависимости» и выбрав проекты, которые зависят от других проектов в решении, и проверив проекты, от которых они зависят. После того, как вы нажмете ОК и выполните восстановление решения, все будет в порядке.


То, как я обошел это в прошлом в VS2005, а также сейчас в VS2008, — это убедиться, что все зависимости верны, а ссылки указывают на проекты, а не на библиотеки DLL. Затем пройдите и вручную соберите каждый проект в порядке зависимости. После того, как последняя сборка будет построена, вы можете запустить полную сборку решения и все будет в порядке.

Этот ответ предназначен для использования в будущем для других, поскольку я знаю, что этому вопросу больше 15 месяцев.

Ура


Я хотел бы отметить пару моментов.

Если вы полагаетесь на файл решения в качестве файла сборки в MSBuild, убедитесь, что вы добавляете проекты в файл решения в том порядке, в котором вы хотите, чтобы они строились, т. Е. На основе порядка взаимной зависимости проектов. Это становится очень важным, если у вас есть проекты в решении, от которых зависят другие проекты, но ссылки были добавлены как «Ссылки», а не как «Ссылки на проекты».

Вам следует избегать этого, как чумы, но если вам все же нужно это сделать, то, по крайней мере, убедитесь, что зависимые проекты появляются раньше в файле решения.

Вы должны иметь в виду, что способ создания порядка сборки в Visual Studio не совсем такой, как в MSBuild. Это связано с тем, что MSBuild в первую очередь зависит от файла проекта, чтобы сообщить ему, каковы зависимости, тогда как Visual Studio также может сохранить их в файле решения. Поэтому иногда можно увидеть ситуации, когда Visual Studio идеально создает решение, но MSBuild просто не может этого сделать.

У меня было несколько случаев, когда мне приходилось вручную настраивать порядок, в котором проекты отображаются в файле решения, а также порядок, в котором проекты были перечислены в элементе ProjectReferences в проекте веб-сайта в файле решения.

Я надеюсь, что приведенная выше информация поможет.


Если вы, например, используете контексты данных LinqtoSQL, а файл .designer.cs отсутствует, вы получите сообщение об ошибке «Не удалось найти файл метаданных».

Восстановить файл designer.cs очень просто.

Откройте dbml с помощью xml view. Добавьте пустую строку, затем удалите ее и сохраните. Это должно восстановить ваш файл designer.cs.

В некоторых случаях, если у вас есть код внутри кода программной части контекста данных, этот обходной путь не сработает. В этом случае выньте код из кода позади и поместите его в блокнот или что-то в этом роде. Проделайте трюк добавления, а затем удаления строки из DC и сохраните. Теперь верните код и сохраните.


У меня аналогичная проблема возникает каждый раз, когда я обновляю проект из SVN.
Другое решение для ASP.NET:

  1. Закройте IDE.
  2. Удалите файлы в формате C:WINDOWSmicrosoft.netframeworkv…Temporary ASP.NET File.

Я также испытал эту ошибку, и причина в том, что проект ссылается на самого себя. Понятия не имею, как это произошло, но я просто удалил ссылку и вуаля


Сначала убедитесь, что флажок «сборка» установлен в меню «Сборка -> Configuration Manager» для каждого проекта.

В случае, если у вас уже есть все проекты, выбранные в меню Build -> Configuration Manager, и перезапуск VS-трюка не работает для вас, чем вам нужно найти ссылку на файл (ы) (может быть dll или cs) в ваш проект и удалите эти ссылки вручную. Эти файлы / ссылки должны отображаться с желтым значком. Ошибка определенно подсказывает вам, какой проект решения вам следует изучить.

Причина этой ошибки заключается в том, что вы удалили файл (ы) вручную в проводнике Windows, а VS не обновил ссылку и не пытается найти файл, который больше не существует!


В моем случае я обнаружил, что одно из моих решений ссылается на то, чего не было на компьютере (VBIDE). Как только я удалил оскорбительную ссылку, остальные проекты построились правильно. Надеюсь, это кому-то поможет.

А в другой ситуации я переместил код из одного проекта в другой, и этот фрагмент кода ссылался на Json.net. Я вручную добавил ссылку на Json.net, но из-за этого возникла проблема. Я решил это, установив Json.net через NuGet, и проблема исчезла. Надеюсь, это кому-то поможет.


Произошло то же самое. У меня есть несколько решений, относящихся к одним и тем же проектам библиотеки (.net 3.5). Я заметил, что когда один был построен в отладочной / нормальной конфигурации, а другой с использованием другой директивы компилятора (sqlite / local mode), это могло произойти. Просто создайте оба проекта с одинаковыми директивами, и все будет в порядке.


Если вы добавили в решение новый проект, убедитесь, что он есть в списке сборки (см. Configuration Manager).


У меня возникла проблема с сохранением, когда я хотел включить файл dll, созданный Matlab. И я наконец решил это, скопировав файл .ctf, который, как я полагаю, означает сертификат, и модуль .netmodule, который необходим для правильной работы .dll вместе с файлом .dll. И это действительно сработало! Итак, я предлагаю проверить, нужны ли для .dll другие файлы.


Windows 7 Максимальная 32 Visual Studio 2008 SQL Server v2005

Я получал ту же ошибку. И я решил удалить и снова добавить ссылки на проекты. Мне не удалось добавить их обратно, потому что ссылка на базу данных в каждом из упомянутых проектов была пустой.

После того, как я сбросил ссылку на базу данных на правильный параметр, я смог построить без дальнейших проблем. Кроме того, это была моя первая попытка перестроить этот проект после разветвления исходного кода в VSS.

Удачи


У меня была эта ошибка, она была вызвана одной из моих зависимостей проекта, где имя сборки было изменено в проекте, но ссылка не была обновлена. Таким образом, обновление ссылки или переименование сборки исправит это.


EE — В моем случае проблема была в проекте, который имеет структуру Entity, откройте диаграмму, перетащите любую таблицу на 2 см :) и сохраните, VS обновит все свои ссылки на БД … создайте эти проекты и создайте решение , Buildssss.


Единственное, что меня исправило (потому что я не использую VS2010 под учетной записью администратора), — это вручную переместить переменную среды VS120COMNTOOLS из системных переменных в пользовательские.


У меня сработало удаление записей всех исходных файлов, которых больше нет в системе управления версиями и файловой системе, из файла .csproj.


Детальный подход:

Что ж, мой следующий ответ — это не просто краткое изложение всех решений, он предлагает нечто большее.

Секция 1):

В общих решениях:

У меня было 4 ошибки такого типа («файл метаданных не найден») и 1 ошибка «Исходный файл не может быть открыт (« Неопределенная ошибка »)».

Я попытался избавиться от ошибки «файл метаданных не найден». Для этого я прочитал много сообщений, блогов и т. Д. И обнаружил, что эти решения могут быть эффективными (резюмируя их здесь):

  1. Перезапустите VS и попробуйте снова построить.

  2. Перейдите в «Обозреватель решений» . Щелкните правой кнопкой мыши Решение. Зайдите в Свойства . Перейдите в «Диспетчер конфигураций» . Проверьте, отмечены ли флажки в разделе «Сборка» . Если какой-либо из них или все они не отмечены, отметьте их и попробуйте построить снова.

  3. Если вышеуказанные решения не работают, следуйте последовательности, упомянутой в шаге 2 выше, и даже если все флажки отмечены, снимите их, проверьте еще раз и попробуйте построить снова.

  4. Порядок сборки и зависимости проекта:

    Перейдите в «Обозреватель решений» . Щелкните правой кнопкой мыши Решение. Перейдите в «Зависимости проекта …» . Вы увидите 2 вкладки: «Зависимости» и «Порядок сборки» . Этот порядок сборки используется для сборки решения. Проверьте зависимости проекта и порядок сборки, чтобы убедиться, что какой-то проект (скажем, «project1»), который зависит от другого (скажем, «project2»), пытается построить до этого (project2). Это могло быть причиной ошибки.

  5. Проверьте путь к отсутствующей .dll:

    Проверьте путь к отсутствующей .dll. Если путь содержит пробел или любой другой недопустимый символ пути, удалите его и попробуйте построить снова.

    Если это причина, измените порядок сборки.


Раздел (2):

Мой частный случай:

Я пробовал все вышеперечисленные шаги с различными перестановками и комбинациями с перезапуском VS несколько раз. Но мне это не помогло.

Итак, я решил избавиться от другой ошибки, с которой столкнулся («Исходный файл не может быть открыт (« Неопределенная ошибка »)»).

Я наткнулся на блог:
http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

Я попробовал шаги, упомянутые в этом блоге, и избавился от ошибки «Исходный файл не может быть открыт (« Неопределенная ошибка »)» и, к удивлению, избавился и от других ошибок («файл метаданных не найден») .


Раздел (3):

Мораль истории:

Попробуйте все решения, упомянутые в разделе (1) выше (и любые другие решения), чтобы избавиться от ошибки. Если ничего не работает, согласно блогу, упомянутому в разделе (2) выше, удалите записи всех исходных файлов, которые больше не присутствуют в системе управления версиями и файловой системе, из вашего файла .csproj .


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...sourceDatabasebinDebugDataAccessLayer.dll' could not be found   Logic   C:Users...sourceLogicCSC   1   Active

Error   CS0006  Metadata file 'C:Users...sourceLogicbinDebugLogic.dll' could not be found    PTS2-MVC    C:Users...sourcePTS2-MVCCSC    1   Active

Error   CS0006  Metadata file 'C:Users...sourcePTS2-MVCbinPTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:Users...sourcePTS2-MVC.TestsCSC  1   Active

When I go to the bindebug 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

JYelton's user avatar

JYelton

35.5k27 gold badges130 silver badges190 bronze badges

asked May 29, 2017 at 22:37

Svenmarim's user avatar

9

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!

Félix Adriyel Gagnon-Grenier's user avatar

answered May 30, 2017 at 9:15

Svenmarim's user avatar

SvenmarimSvenmarim

3,5634 gold badges24 silver badges56 bronze badges

14

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.

answered Oct 27, 2017 at 5:46

rjay dadula's user avatar

rjay dadularjay dadula

5904 silver badges3 bronze badges

3

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.

answered Jan 18, 2018 at 7:34

ebol2000's user avatar

ebol2000ebol2000

1,17511 silver badges16 bronze badges

1

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.

answered Dec 12, 2017 at 21:17

roscoelee's user avatar

roscoeleeroscoelee

1411 silver badge5 bronze badges

3

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

answered Dec 20, 2017 at 9:49

j00hi's user avatar

j00hij00hi

5,3713 gold badges44 silver badges81 bronze badges

0

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

answered Aug 20, 2018 at 14:33

Lucas Prestes's user avatar

Lucas PrestesLucas Prestes

3421 gold badge4 silver badges19 bronze badges

1

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.

answered Jan 12, 2018 at 0:39

Rob's user avatar

1

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.

answered Aug 30, 2018 at 14:57

David Perez's user avatar

David PerezDavid Perez

4785 silver badges17 bronze badges

1

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.

answered Oct 2, 2018 at 9:04

Ian's user avatar

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

JonathanDavidArndt's user avatar

answered Jan 13, 2018 at 17:30

D__'s user avatar

D__D__

1411 silver badge5 bronze badges

1

What worked for me:

Package Manager Console (Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

Rebuild solution.

answered Aug 28, 2019 at 9:31

s3c's user avatar

s3cs3c

1,45519 silver badges27 bronze badges

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

answered Jan 12, 2020 at 17:17

Siva Sankaran's user avatar

Siva SankaranSiva Sankaran

1,5114 gold badges21 silver badges39 bronze badges

1

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.

answered Feb 20, 2018 at 17:16

Yair Halberstadt's user avatar

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.

answered Mar 21, 2018 at 20:20

John81's user avatar

John81John81

3,6685 gold badges38 silver badges58 bronze badges

1

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

answered Jun 26, 2018 at 5:13

Maryam's user avatar

MaryamMaryam

1,4174 gold badges18 silver badges33 bronze badges

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 FilesdotnetsdkNuGetFallbackFoldermicrosoft.extensions.identity.stores2.0.1libnetstandard2.0Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>

answered Oct 4, 2018 at 19:28

toutecrimson's user avatar

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

answered Mar 7, 2019 at 15:18

Graham Laight's user avatar

Graham LaightGraham Laight

4,6703 gold badges29 silver badges28 bronze badges

I had the same problem and i tried solutions from
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.

answered May 30, 2019 at 6:33

Amad Malik's user avatar

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.

answered Feb 5, 2018 at 14:30

Mukesh Kumar's user avatar

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.

answered Jun 26, 2018 at 21:52

Joseph Mawer's user avatar

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>

  4. remove that ItemGroup and open once again your project and build

  5. If that reference is important for you then add once again.

rptwsthi's user avatar

rptwsthi

10.1k10 gold badges68 silver badges109 bronze badges

answered Dec 20, 2018 at 7:10

Abhishek Shingadiya's user avatar

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.

answered Feb 22, 2019 at 13:57

Burke's user avatar

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

answered Mar 20, 2019 at 19:33

JohnB's user avatar

JohnBJohnB

17.9k16 gold badges98 silver badges110 bronze badges

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.

answered Apr 10, 2019 at 3:43

p4ulinux's user avatar

p4ulinuxp4ulinux

3295 silver badges14 bronze badges

For me what worked was:

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

answered May 28, 2019 at 18:51

Andrew's user avatar

AndrewAndrew

18.4k12 gold badges103 silver badges117 bronze badges

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.

answered Jun 24, 2019 at 11:38

izimiky's user avatar

izimikyizimiky

891 silver badge3 bronze badges

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

Matthew's user avatar

Matthew

1,9053 gold badges19 silver badges26 bronze badges

answered Mar 26, 2018 at 3:34

John Carlo Diocadiz's user avatar

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.

answered Nov 8, 2019 at 16:24

iheartcsharp's user avatar

iheartcsharpiheartcsharp

1,2791 gold badge14 silver badges22 bronze badges

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.

answered Feb 26, 2021 at 20:49

NerdyGinger's user avatar

NerdyGingerNerdyGinger

4067 silver badges13 bronze badges

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:

  1. 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.
  2. Fix nugget, enter in the nugget console

and execute Nuget restore SolutionName.sln

  1. 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.
  2. 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.    

Возможно, вам также будет интересно:

  • Ошибка cs go exe не отвечает
  • Ошибка crystal service failed
  • Ошибка crystal process died
  • Ошибка crycloud hunt showdown 0x4000
  • Ошибка crycloud hunt showdown 0x20005

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии