Error cs0006 не удалось найти файл метаданных microsoft vsa dll

Ошибка "Не удалось найти файл метаданных" C# Решение и ответ на вопрос 2727314
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;
            }
        }
    }
}

We are upgrading from TFS 2008 to TFS 2012. Majority of our applications are .net 3.5 applications.
We have setup a TFS 2012 environment and went through migration process. When we attempt to build our .net 3.5 applications we are getting the error:

csc error cs0006 metadata file could not be found........

If we take a .net 3.5 application, upgrade it to .net 4.x, then run the build again, it works just fine.

I cannot upgrade every single application I have during this migration. Is there something I might be missing either in the migration or on my build box to support 3.5?

I have VS 2008, 2010, 2012 installed on my build server. I have .net frameworks installed, etc.

Any assistance is helpful.

Max Shmelev's user avatar

Max Shmelev

3,7744 gold badges25 silver badges26 bronze badges

asked Jan 23, 2013 at 22:04

Kevin Price's user avatar

1

The project dependencies and project build order can be specified in Visual Studio 2012 by right clicking on the project in the solution explorer and selecting Project Dependencies. By doing this action, your solution file will be fixed. In my case I was able to fix this problem without manually editing the solution files.

Kirill Kobelev's user avatar

answered Jun 12, 2014 at 3:06

Vasudevan Kannan's user avatar

1

We get these problems switching between branches (with significant changes). When it happens I recommend the following:

  • Close Visual Studio
  • Close w3wp.exe instances (paranoid and only if you’re hosting via local IIS)
  • Search for and delete all bin and obj folders
  • Clean out all intermediate JIT compiled assemblies from C:WindowsMicrosoft.NETFramework64v4.0.30319Temporary ASP.NET Files

Following this set of will do what «Clean solution» should do, but doesn’t. Essentially we’re trying to remove any chance whatsoever of anything being cached anywhere (which is the most common cause of these issues).

Of course your mileage may vary, but for us with 120 projects and 1.3 million lines of code refactors regularly throw this issue up and it resolves it reliably.

answered Mar 9, 2017 at 2:10

Paul Carroll's user avatar

Paul CarrollPaul Carroll

1,50913 silver badges15 bronze badges

This seems to be caused by the fact that the Visual Studio solution file does not contain the project dependencies. I found that I had to edit the solution file manually to setup the dependencies using the project GUIDs.

For example, in our solution file we had something like this:

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectAProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
EndProject

Note that no dependencies are specified. It needed to be more like this where the additional GUIDs specified are the GUIDs of the project that ProjectA depends on.

Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectA", "ProjectAProjectA.csproj", "{61C9C7C3-B5B4-4C00-8AE0-B49D21B3D77C}"
    ProjectSection(ProjectDependencies) = postProject
        {EB576061-5081-4ED5-9146-1B20C893E51E} = {EB576061-5081-4ED5-9146-1B20C893E51E}
        {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40} = {A469F4BA-8BAA-4F14-BFC8-4D49F93C3E40}
        {03FAB21D-C077-499B-9B19-67971791D369} = {03FAB21D-C077-499B-9B19-67971791D369}
        {F5E0C7B8-36AD-46B0-A74D-9C48516E208A} = {F5E0C7B8-36AD-46B0-A74D-9C48516E208A}
    EndProjectSection
EndProject

See this post for more information.

answered Jul 4, 2013 at 16:53

Nicholas Roeder's user avatar

2

I also had the same error.

The fix was, to check the path. In my path, one folder has the name abc%20ert. This came from syncing the space from git. Visual Studio has problems with the %20 in the path. Removing this solved the problem.

answered May 4, 2017 at 7:40

Michael Mittermair's user avatar

2

In my case one of the projects were not building but there was absolutely no mention of it in the errors. After a couple hours of pulling my hair and dropping some F bombs, I finally looked at the output carefully and noticed there was an error:

enter image description here

And that was it. I fixed it and presto all errors were gone. But I got curious so I changed the code back to the code that was failing compilation. I did a build and now I got the friendly build error. For some reason the error was not being shown. No idea why…

answered Apr 7, 2017 at 17:51

CodingYoshi's user avatar

CodingYoshiCodingYoshi

24.7k4 gold badges58 silver badges60 bronze badges

Check the target framework version in each project=>properties screen. If it’s lower than used in the reference projects or files, you’ll get error as the compiler doesn’t know how to deal with the higher version of framework.
From what you describe, you have a dependency that has framework v4.0 as target.

Change dependencies target framework one by one until your project builds.

If it’s a 3rd party closed source dependency, please ask them to provide it with .net 3.5 target.

There is no workaround.

answered Sep 5, 2018 at 19:53

michal's user avatar

michalmichal

511 silver badge1 bronze badge

I had a similar problem. In my case I was able to solve it by 2 steps. First, I Cleaned the Solution using the Clean Solution option. Then after the solution was cleaned, the debugger detected that I had installed outdated versions of the Microsoft.Aspnet.Mvc library. So I installed the new ones through the Library console using the lines below:
Install-Package Microsoft.Aspnet.Mvc -version 5.2.3.0 -projectname _____________
Install-Package Microsoft.Aspnet.Mvc -version 5.2.3.0 -projectname _____________

answered Sep 18, 2016 at 16:48

AGuler's user avatar

1

I got this error when using C# 7 language features in an ASP.NET project, where it didn’t have a recent version of NuGet package Microsoft.Net.Compilers, as described in Enabling c# 7 in a asp.net application.

answered Aug 15, 2017 at 5:45

Bart Verkoeijen's user avatar

Bart VerkoeijenBart Verkoeijen

15.8k7 gold badges53 silver badges56 bronze badges

I had this problem with a solution involving more that one project.
The thing was that there were different Framework versions.
My WEB project was 4.5 and there was a PDF Helper using 4.7.2 version.
After I aligned all versiones, I cleaned the solution and the compilation went fine.

Best regards.

answered Jul 28, 2020 at 13:56

Martín Masella's user avatar

This happened to me after switching between branches in a project which have significant differences between them, I tried every solution from the web but non worked.

Finally, I had to delete my local project files and clone the project from the GitHub repo again, after that when I started the project, the project build worked without errors.

answered Apr 13, 2021 at 12:17

Luka Devic's user avatar

In my case I had an error in dependent project. That is why the dependent project was not built and DLL was missing. I had to solve other errors in dependent project first, then error CS0006 disappeared.

answered Apr 16, 2021 at 13:40

David Najman's user avatar

Cleaning projects by dotnet clean helped me:

dotnet clean

answered Nov 15, 2022 at 21:15

vladimir's user avatar

vladimirvladimir

12.6k2 gold badges38 silver badges63 bronze badges

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

Я только что создал новый 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

  • I am trying to setup tabular model processing following the below links:

    https://azure.microsoft.com/en-us/blog/automating-azure-analysis-services-processing-with-azure-functions/

    http://www.sqlservercentral.com/blogs/sql-with-dustin-ryan/2017/06/21/how-to-automate-processing-of-azure-analysis-services-models/

    Once all setup, I run the function I receive the following error. I have provided a screenshot of my script w/ files. Can someone help me with what I am doing wrong?

    2017-06-29T18:29:43.456 Function compilation error
    2017-06-29T18:29:43.456 (1,1): error CS0006: Metadata file ‘Microsoft.AnalysisServices.Tabular.DLL’ could not be found
    2017-06-29T18:29:43.456 (2,1): error CS0006: Metadata file ‘Microsoft.AnalysisServices.Core.DLL’ could not be found
    2017-06-29T18:29:43.456 (7,17): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (13,27): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (13,81): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (16,17): error CS0246: The type or namespace name ‘Database’ could not be found (are you missing a using directive or an assembly reference?)
    2017-06-29T18:29:43.456 (17,17): error CS0246: The type or namespace name ‘Model’ could not be found (are you missing a using directive or an assembly reference?)
    2017-06-29T18:29:43.456 (18,41): error CS0103: The name ‘RefreshType’ does not exist in the current context
    2017-06-29T18:29:43.456 Function completed (Failure, Id=24114332-2973-4360-91a6-8fd9b0695134, Duration=89ms)
    2017-06-29T18:29:43.472 Exception while executing function: Functions.TimerTriggerCSharp1. Microsoft.Azure.WebJobs.Script: Script compilation failed.


    chelvy

Answers

  • Hello, I just had the same issue. To resolve, I moved the DLL’s into Bin folder. Where is the bin folder and how to create? Unfortunately the user interface apparently doesn’t allow folders to be created. Instead open Kudu (under Platform features of
    your Azure App; top level of Azure function GUI tree) and change directory to your Azure function folder and «mkdir Bin» then move your DLL’s into there.

    • Edited by

      Friday, July 14, 2017 3:05 AM

    • Proposed as answer by
      Josh Caplan -MSFTMicrosoft employee
      Friday, August 18, 2017 4:46 PM
    • Marked as answer by
      BillAnton
      Wednesday, October 4, 2017 8:03 PM

  • Remove From My Forums
  • Question

  • I am trying to setup tabular model processing following the below links:

    https://azure.microsoft.com/en-us/blog/automating-azure-analysis-services-processing-with-azure-functions/

    http://www.sqlservercentral.com/blogs/sql-with-dustin-ryan/2017/06/21/how-to-automate-processing-of-azure-analysis-services-models/

    Once all setup, I run the function I receive the following error. I have provided a screenshot of my script w/ files. Can someone help me with what I am doing wrong?

    2017-06-29T18:29:43.456 Function compilation error
    2017-06-29T18:29:43.456 (1,1): error CS0006: Metadata file ‘Microsoft.AnalysisServices.Tabular.DLL’ could not be found
    2017-06-29T18:29:43.456 (2,1): error CS0006: Metadata file ‘Microsoft.AnalysisServices.Core.DLL’ could not be found
    2017-06-29T18:29:43.456 (7,17): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (13,27): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (13,81): error CS0234: The type or namespace name ‘AnalysisServices’ does not exist in the namespace ‘Microsoft’ (are you missing an assembly reference?)
    2017-06-29T18:29:43.456 (16,17): error CS0246: The type or namespace name ‘Database’ could not be found (are you missing a using directive or an assembly reference?)
    2017-06-29T18:29:43.456 (17,17): error CS0246: The type or namespace name ‘Model’ could not be found (are you missing a using directive or an assembly reference?)
    2017-06-29T18:29:43.456 (18,41): error CS0103: The name ‘RefreshType’ does not exist in the current context
    2017-06-29T18:29:43.456 Function completed (Failure, Id=24114332-2973-4360-91a6-8fd9b0695134, Duration=89ms)
    2017-06-29T18:29:43.472 Exception while executing function: Functions.TimerTriggerCSharp1. Microsoft.Azure.WebJobs.Script: Script compilation failed.


    chelvy

Answers

  • Hello, I just had the same issue. To resolve, I moved the DLL’s into Bin folder. Where is the bin folder and how to create? Unfortunately the user interface apparently doesn’t allow folders to be created. Instead open Kudu (under Platform features of
    your Azure App; top level of Azure function GUI tree) and change directory to your Azure function folder and «mkdir Bin» then move your DLL’s into there.

    • Edited by

      Friday, July 14, 2017 3:05 AM

    • Proposed as answer by
      Josh Caplan -MSFTMicrosoft employee
      Friday, August 18, 2017 4:46 PM
    • Marked as answer by
      BillAnton
      Wednesday, October 4, 2017 8:03 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 assembly\yourAssembly.dll"/>.

annoying_squid
20 сен. 2018, в 15:08

Поделиться

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

Я полагаю, что возникла ошибка при сборке, потому что DLL файл библиотеки Logic Layer не мог быть собран, и основное приложение не смогло его найти.

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

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

PS: это было в Visual Studio 2015 Community Edition

Remus.A
06 фев. 2018, в 11:37

Поделиться

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

В конце концов, моя проблема была решена тем, что я исправил все остальные ошибки сборки, а затем снова собрал, и он был успешно собран.

Таким образом, в случае, если у вас есть другие ошибки сборки наряду с отсутствующей ошибкой DLL файла, и ничего больше не работает для вас, попробуйте сначала исправить другие ошибки, а затем снова построить решение.

Fakhar Ahmad Rasul
02 фев. 2018, в 22:09

Поделиться

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

  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Как получить доступ к другой вкладке в Chrome в JavaScript?
  • 1Entity Framework СОЕДИНЯЕТСЯ, когда тип данных не совпадает
  • 0Предпочтительный выбор и визуальный разделитель в Symfony 2
  • 1Невозможно назначить String Array для начальной загрузки DateTimePicker disabledDates
  • 0клиент c ++ с сервером мониторинга php
  • 0Повторное открытие закрытого диалога переводит его в исходное положение после перемещения
  • 0Сохранение данных дает ошибку, параметр отсутствует или значение пусто
  • 0Отображение таблицы в таблице по клику
  • 1Ошибка компиляции Java в NetBeans
  • 0Получить значение диапазона, которое динамически изменяется в поле выбора
  • 1App Engine gcloud: Не удается найти файлы Python в домашнем каталоге, но они работают?
  • 0MySQL Выбрать разные данные в одной строке в один и тот же запрос
  • 1Как программно настроить прослушиватель Azure ServiceBus для режима подключения «AutoDetect»?
  • 1Печать всех вхождений сопоставленных данных из 2 кадров данных в пандах
  • 1Процедура SQL Server и набор записей
  • 0столбец таблицы, чтобы не отталкивать другие столбцы?
  • 1AES-128-GCM аутентифицирует IV на узле V6?
  • 1Как вывести дополнительную отладочную информацию с помощью Eclipse и Android JUnit
  • 1Исключение в основном потоке при выполнении файла java jar
  • 0Что означает эта конструкция? [Дубликат]
  • 0Можно ли ждать ForForMultipleObjects для события и IOCompletionPort с вводом?
  • 1MinMax Scale Sparse Matrix исключая нулевые элементы
  • 0Поверните это изображение на клик — JQuery
  • 0Невозможно установить Angularjs на Windows 7
  • 0Что такое редактор WYSIWYG, используемый Stackoverflow?
  • 0Как добавить расширяемый блок дополнительной информации в строку таблицы, созданную в выражении Angular repeat?
  • 0PHP — безопасный PDO подготовил оператор с неизвестным количеством параметров
  • 0Локальная переменная в представлении AngularJS
  • 0JQuery для переключения нескольких элементов
  • 0PHPMailer не может отправить письмо
  • 0Мои div-блоки inline-блока не выровнены на FF и Chrome, но на Safari
  • 1Адаптер не будет работать на реальном устройстве
  • 0Смущен (char *) приведением
  • 1Android несортированный список
  • 1Исключить приложение из Launcher
  • 0Более лаконичные слушатели событий
  • 0Как я могу позволить пользователю загружать несколько текстовых файлов, затем сохранять их в строку и отображать их (в PHP)?
  • 1Реализация NamingStrategy в Hibernate 5 (сделать автоматически сгенерированные имена столбцов UPPERCASE)
  • 1Таймер C # не работает
  • 1Решение для анализа данных Bliffoscope с использованием JavaScript
  • 1ЯВА: Заменить заявление на перерыв?
  • 0Как обновить комбинированный ящик кэндо в angularjs?
  • 0Попытка изменить переменную сеанса CodeIgniter перед загрузкой, работает только на перезагрузку?
  • 0преобразование вложенных массивов в ассоциативный массив
  • 0добавить элемент SVG во время выполнения в угловой с двухсторонней привязкой данных
  • 0Равные высоты div (или li) в строках с шириной и высотой жидкости (готово на 90%)
  • 1XmlSerializer не может десериализовать XML, содержащий зашифрованную строку
  • 1Google API Uncaught исключение при использовании gapi.load
  • 0Как удалить элемент и его дочерние элементы, используя класс php HTMLDOMDocument
  • 0Угловое обновление вар в сервисе

Понравилась статья? Поделить с друзьями:
  • Error cs 0117
  • Error cryptcertstrtonamew failed 0x80092023 2146885597
  • Error crypt1k скачать
  • Error cryinput dll could not be loaded
  • Error critical file transfer error