Ошибка e0135 visual studio
Решили мы как-то перевести свой проект на Visual Studio 2015 — там ведь столько захватывающих фич! Вчера вот только решили, а уже сегодня утром я запустил её инсталлятор. Небо было безоблачным, ничто не предвещало беды. Ну что, в самом деле, может пойти не так? Сколько уже этих Visual Studio переставлено — не счесть (я, помнится, ещё 6.0 когда-то ставил). Кто бы мог подумать, что эта тривиальнейшая задача может вылиться в весьма неожиданный забег по граблям длинной почти в целый рабочий день.
Хм. Не поставился значит, Team Explorer и ещё пару минорных пакетов. Ну ок. Закрываем, переустанавливаем. Не помогает. Удаляем студию, перезагружаемся, устанавливаем — та же ошибка. Лезем в Гугл с вопросом об ошибке установки Visual Studio 2015 на этапе инсталляции компонента Team Explorer и понимаем, что проблема это массовая — десятки ссылок с тем же описанием:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
Отвечают на все эти вопросы специалисты первой линии техподдержки Microsoft, советы которых сводятся к «отключите антивирус», «проверьте чексуму образа со студией», «проверьте диск на ошибки». Ничего из этого, конечно, не помогает, о чём им и рассказывают, после чего они пропадают и больше не отвечают. Очень дружелюбная пользовательская поддержка, ничего не скажешь.
Ну что же, пора включать голову, брать в руки инструменты и разбираться. Поехали.
Итак, всё что у нас есть, это входная точка ошибки — проблема с Team Explorer. И ссылочка на лог-файл на приведённом выше скриншоте. Ну ок, давайте пойдём почитаем что там лог-файл думает о нашей ошибке.
Всё, что можно понять из этого лога, это то что компонент ставился-ставился, да что-то не поставился. Бывает, мол, чего уж там. Ну, спасибо большое за информацию!
Ладно, давайте зайдём с другой стороны. Team Explorer это (как и почти всё в современных версиях Visual Studio) — VSIX (компонент, расширение). Ставится отдельно от ядра студии специальной программой VSIXInstaller.exe, которая живёт в C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE и умеет при установке этих самых VSIX-компонентов писать во временную папку (ну, ту, которая %TEMP%) логи о том, как всё прошло. Идём в %TEMP%, находим по времени ошибки из лога выше файлик, соответствующий установке Team Explorer. Вот он:
Ну, тут уже побольше всякого интересного написано, конечно. Нас интересует первый момент, когда что-то пошло не так. Вот он:
26.11.2015 17:31:06 - System.TypeInitializationException: The type initializer for 'VSIXInstaller.SupportedSKUs' threw an exception. ---> System.BadImageFormatException: Could not load file or assembly 'Microsoft.VisualStudio.Settings.14.0.dll' or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
Хм, произошла ошибка при попытке загрузить сборку Microsoft.VisualStudio.Settings.14.0.dll. Первой моей мыслью было то, что студия как-то запуталась в порядке установки своих компонентов и пытается использовать при установке что-то, что ещё не установилось куда надо. Так, есть у нас в системе такая библиотека?
Оказалось — есть. Лежит в GAC, там где ей и положено лежать:
Так, что же получается? Сборка есть, она находится там, где нужно, но не загружается. Может быть, битая? Берём IL DASM, загружаем — всё ок.
Может быть умельцы из Microsoft сумели написать такой инсталлятор, у которого иногда получается не найти сборку в GAC? Берём Process Monitor, добавляем в него фильтр на открытие файлов и снова запускаем инсталлятор студии. Доходим до ошибки, смотрим логи.
Ага, vcruntime140.dll загружается. Это redistributable-библиотека от Visual Studio 2015. Ну, она-то точно должна была поставиться на одном из первых этапов установки! Но давайте проверим, чем уже чёрт не шутит.
Проверка раз — в списке установленных программ:
Проверка два — в папке C:\Windows\SysWOW64\:
Проверка три — это, собственно, «SUCCESSS» в логе Process Monitor:
Последняя проверка — вообще железобетонный аргумент: видите, поискали, попробовали открыть, открылось успешно — значит файл найдён. Всё, подозрения снимаются, идём дальше. Так, какую-же библиотеку инсталлятор VSIX пытается подгрузить следующей по логами Process Monitor?
Как это опять vcruntime140.dll уже в другой папке?! Получается, найдя vcruntime140.dll в папке C:\Windows\SysWOW64\ и успешно её открыв (а мы знаем что так и было по логам выше!) загрузчик зависимостей всё-же почему-то счёл её недостаточно хорошей и отбросил. Как же так?! Это что — не майкрософтовская библиотека? Смотрим свойства:
Да нет, нормальная библиотека. Почему же не загрузилась? Давайте посмотрим на неё внимательнее. Для этого в составе любой версии Visual Studio есть отличная утилита dumpbin. Запускаем её с вот такими ключами:
и смотрим на результаты:
Подождите-подождите… А почему это ты, библиотечка, 64-битная?! Ты же лежишь в папке C:\windows\SysWOW64\, где вообще-то место только 32-битным библиотекам! А ну-ка давайте посмотрим, что же тогда лежит в C:\Windows\System32?
А то же самое (кто не верит в размер — можете проверить каким-нибудь WinMerge, они идентичны). Вы уже уловили, в чём суть? Ошибка закралась в инсталятор Redistributable-компонентов, входящий в инсталятор Visual Studio 2015 — он просто ставит 64-битные версии рантайм-библиотек и в папку для 64-битных библиотек (C:\Windows\System32) и в папку для 32-битных (c:\windows\SysWOW64\). В итоге при дальнейшей попытке использования 64-битной версии всё будет ок, а вот при попытке загрузки 32-битной версии будет то, что мы увидели при установке Team Explorer — загадочные ошибки вообще без упоминания библиотеки vcruntime140.dll и Redistributable-пакета. И делай, что хочешь.
А что же мы хотим делать? А удалить x86-часть Redistributable-пакета Visual Studio 2015, скачать её отдельно с сайта Microsoft и переустановить. Сюрприз — на сайте Microsoft версия правильная, она установит 32-битную версию библиотеки в C:\windows\SysWOW64, после чего можно перезапустить установку Visual Studio 2015 и она успешно дойдёт до конца!
Осталось как-то объяснить начальству почему это я целый день устанавливал Visual Studio, если с этим дети в третьем классе за час справляются. В общем-то ради этой цели и была написана данная статья, а уж зачем вы её прочли — я не знаю :)
P.S. Справедливости ради следует отметить, что поиск по той же проблеме с упоминанием слов «redistributable» и «vcruntime140» всё-таки выводит на одиноко валяющийся на обочине Stackoverflow вопрос с правильным ответом (кто-то прошел тот же путь, что и я!), который в виду своей низкой оценки("+1" на момент написания статьи) не воспринимается людьми, как настоящее решение проблемы. Не будем забирать у автора того ответа пальму первенства и плодить лишние сущности, если описанная в статье проблема коснулась и вас, а предложенное решение помогло — вы можете проголосовать за этот ответ на Stackoverflow.
Когда функция API подключаемого модуля системы управления версиями возвращает ошибку, ожидается один из следующих кодов ошибок. Все ошибки отрицательны, предупреждения или информационные коды ошибок являются положительными, а успешно — 0.
Код ошибки | Значение | Описание |
---|---|---|
SCC_I_SHARESUBPROJOK | 7 | Подключаемый модуль поддерживает добавление файлов из системы управления версиями в два этапа. Дополнительные сведения см. в разделе скксетоптион. |
SCC_I_FILEDIFFERS | 6 | Локальный файл отличается от файла в базе данных системы управления версиями (например, сккдифф может вернуть это значение). |
SCC_I_RELOADFILE | 5 | Локальный файл был изменен во время операции системы управления версиями; по возможности интегрированная среда разработки должна перезагрузить файл. |
SCC_I_FILENOTAFFECTED | 4 | На этот файл не влияет. |
SCC_I_PROJECTCREATED | 3 | Project был создан во время операции системы управления версиями (например, во время вызова сккопенпрожект , когда SCC_OP_CREATEIFNEW указан флаг). |
SCC_I_OPERATIONCANCELED | 2 | Операция отменена. |
SCC_I_ADV_SUPPORT | 1 | Подключаемый модуль поддерживает дополнительные параметры для указанной команды. Дополнительные сведения см. в разделе SccGetCommandOptions. |
SCC_OK | 0 | Успешно. |
SCC_E_INITIALIZEFAILED | -1 | Ошибка: сбой инициализации. |
SCC_E_UNKNOWNPROJECT | -2 | Ошибка: проект неизвестен. |
SCC_E_COULDNOTCREATEPROJECT | –3 | Ошибка: не удалось создать проект. |
SCC_E_NOTCHECKEDOUT | –4 | Ошибка: файл не извлечен. |
SCC_E_ALREADYCHECKEDOUT | -5 | Ошибка: файл уже извлечен. |
SCC_E_FILEISLOCKED | –6 | Ошибка: файл заблокирован. |
SCC_E_FILEOUTEXCLUSIVE | -7 | Ошибка: файл извлечен в монопольном режиме. |
SCC_E_ACCESSFAILURE | –8 | Возникла проблема при доступе к системе управления версиями, возможно, из-за проблем с сетью или состязаниями. Рекомендуется повторить попытку. |
SCC_E_CHECKINCONFLICT | –9 | Ошибка: при возврате возник конфликт. |
SCC_E_FILEALREADYEXISTS | –10 | Ошибка: файл уже существует. |
SCC_E_FILENOTCONTROLLED | -11 | Ошибка: файл не находится в системе управления версиями. |
SCC_E_FILEISCHECKEDOUT | -12 | Ошибка: файл извлечен. |
SCC_E_NOSPECIFIEDVERSION | -13 | Ошибка: указанная версия отсутствует. |
SCC_E_OPNOTSUPPORTED | -14 | Ошибка: операция не поддерживается. |
SCC_E_NONSPECIFICERROR | – 15 | Неспецифическая ошибка. |
SCC_E_OPNOTPERFORMED | -16 | Ошибка. операция не была выполнена. |
SCC_E_TYPENOTSUPPORTED | -17 | Ошибка: тип файла, например binary, не поддерживается системой управления исходным кодом. |
SCC_E_VERIFYMERGE | –18 | Файл был успешно объединен, но не проверен, так как он ожидает проверки пользователя. |
SCC_E_FIXMERGE | -19 | Файл был автоматически объединен, но не был возвращен из-за конфликта слияния, который необходимо разрешить вручную. |
SCC_E_SHELLFAILURE | –20 | Ошибка из-за сбоя оболочки. |
SCC_E_INVALIDUSER | -21 | Ошибка: недопустимый пользователь. |
SCC_E_PROJECTALREADYOPEN | -22 | Ошибка: проект уже открыт. |
SCC_E_PROJSYNTAXERR | -23 | синтаксическая ошибка Project. |
SCC_E_INVALIDFILEPATH | – 24 | Ошибка: недопустимый путь к файлу. |
SCC_E_PROJNOTOPEN | -25 | Ошибка: проект не открыт. |
SCC_E_NOTAUTHORIZED | – 26 | Ошибка: пользователь не имеет права на выполнение этой операции. |
SCC_E_FILESYNTAXERR | -27 | Синтаксическая ошибка в файле. |
SCC_E_FILENOTEXIST | -28 | Ошибка, локальный файл не существует. |
SCC_E_CONNECTIONFAILURE | -29 | Ошибка. произошла ошибка подключения. |
SCC_E_UNKNOWNERROR | –30 | Неизвестная ошибка. |
SCC_E_BACKGROUNDGETINPROGRESS | -31 | Фоновая операция получения сейчас выполняется. |
Предоставлены макросы для быстрой проверки
Remarks
Все функции API подключаемого модуля системы управления версиями (за исключением сккадд, сккчеккини сккдифф) должны выполняться успешно, если локальные файлы, передаваемые в качестве аргументов, не существуют в рабочей папке. Например, интегрированная среда разработки может выдать вызов сккчеккаут или сккунчеккаут для файла, который не существует в рабочей папке, но существует в системе управления версиями. Этот вызов будет выполнен. Если в рабочей папке нет файла или в системе управления версиями, то ожидается сбой функции.
Некоторые функции, такие как SccAdd и SccCheckin , должны возвращать, SCC_E_FILENOTEXIST Если файл в рабочей папке не существует. Другие функции должны выполняться, если рабочий файл не существует, если функции работают с допустимым именем файла в системе управления версиями.
Подключаемый модуль системы управления версиями не должен делать никаких предположений о правах доступа к файлу в рабочей папке, даже если во время некоторой операции подключаемый модуль пометил файл как доступный только для чтения. Файл в рабочей папке можно перемещать, удалять и изменять вне управления подключаемым модулем.
Выкидывает след. ошибку:1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\S ource.cpp(154,40): error C2653: filesystem: не является именем класса или пространства имен
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(154,34): error C3861: exists: идентификатор не найден
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(170,18): warning C4244: инициализация: преобразование "ULONGLONG" в "DWORD", возможна потеря данных
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(433,27): error C3083: filesystem: символ слева от "::" должен представлять тип
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(433,39): error C2039: "exists": не является членом "std".
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.27.29110\include\s stream(20): message : см. объявление "std"
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(433,45): error C3861: exists: идентификатор не найден
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(455,8): error C2664: "HINSTANCE ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT)": невозможно преобразовать аргумент 3 из "LPCSTR" в "LPCWSTR"
1>C:\Users\ZKiDPUser\source\repos\Project1\Project1\Source.c pp(455,34): message : Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um\shellapi.h(87,22): message : см. объявление "ShellExecuteW"
1>Сборка проекта "Project1.vcxproj" завершена с ошибкой.
Что не так с этим кодом? В чем его ошибка?
public class CustomMath < public static int multiply(int a, string b) < return a * b;.
Подскажите пожалуйста что не так с кодом, при нажатии Button вылетает ошибка
:( Вот задание: Преобразовать массив Х по следующему правилу: все отрицательные элементы массива.
Что не так с кодом? ( пытаюсь понять, что не так? )
Есть исходный код. Hook, работает хорошо, но есть минус огромный - перестаёт писать в лог, при.
Что не так с кодом. Постоянно выдаёт ошибку что бы я ни делал
Вычислить значение циклической функции Функция: z=a cos(bt sin t)+c Изменение аргумента.
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 19
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 26
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 33
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 68
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 93
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 109
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 134
Ошибка (активно) E0266 "data" не является однозначным WindowsProject2 c:\Users\admin\source\repos\WindowsProject2\WindowsProject2\ WindowsProject2.cpp 185
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 19
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 26
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 33
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 68
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 93
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 109
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 134
Ошибка C2872 data: неоднозначный символ WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 185
Ошибка C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 179
Ошибка C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. WindowsProject2 c:\users\admin\source\repos\windowsproject2\windowsproject2\ windowsproject2.cpp 204
Ошибка памяти при выполнении, при компиляции не выводит ошибки
ПОмогите плс программа вводит строку символов до точки, а после вычисляет процент согласных в этой.
Ошибки при компиляции
Здравствуйте. Не могу запустить код из-за ошибок. Не понятно, от чего они возникли. Вот сама.
Ошибка в Visual Studio 2017
Уже 2 день не могу ничего сделать с Visual Studio ни в какую не работает перезагружал много раз не.
Ошибка в Microsoft Visual Studio 2017 C++ Community
При создание нового проекта на C++ (консольное приложение или пустой проект), через 2 секунды после.
а расскажи, что ты этим хотел сделать? По виду похоже на поле класса Numerator типа int, но списке инициализации какая-то ересь
Не помогла.
int& Numerator() < return fn; >// Доступ к числителю для Чтения и записи
int& Denominator() < return fd; >//Доступ к знаменателю для Чтения и записи
string Frac() < return Get; >// Чтение объекта в формате строки.
AlinDen, не тестировал. Это сам
Простая дробь (тип TFrac)
Тип данных реализован в отдельном модуле UFrac.h
int TFrac::NOD(int nr, int dr) const
int Lfactor;
if (nr == 0) return dr;
nr = (int)abs((double)nr);
if ((nr < 1) || (dr < 1))
cout return 0;
>
if (nr == dr) return nr;
for (Lfactor = fmod((nr > dr ? nr : dr), 2); Lfactor >= 2; Lfactor--)
if (((nr, Lfactor) - (fmod(nr, Lfactor)) == 0) && ((dr, Lfactor) - (fmod(dr, Lfactor)) == 0))
return Lfactor;
>;
return 1;
>;
String TFrac::Get(void) const
char Res[34], nr[16], dr[16];
itoa(fn, nr, 10);
itoa(fd, dr, 10);
strcpy(Res, nr);
strcat(Res, "/");
strcat(Res, dr);
return Res;
>;
TFrac::TFrac(char str[]) // Конструктор.
fn = atoi(strtok(str, "/"));
fd = atoi(strtok(NULL, "/"));
>;
TFrac* TFrac::operator * (const TFrac& B) // Умножение.
int nr = Numerator * B.Numerator;
int dr = Denominator * B.Denominator;
TFrac* Res = new TFrac(nr, dr);
return Res;
>;
TFrac* TFrac::operator / (const TFrac& B) // Деление.
int nr, dr;
if (B.Numerator != 0)
if (B.Numerator > 0)
nr = Numerator * B.Denominator;
dr = B.Numerator * Denominator;
>
else
nr = -1 * Numerator * B.Denominator;
dr = -1 * B.Numerator * Denominator;
>
>
else
nr = 0;
dr = 1;
>
TFrac* Res = new TFrac(nr, dr);
return Res;
>;
TFrac* TFrac::Square(void) // Квадрат.
int nr = Numerator * Numerator;
int dr = Denominator * Denominator;
TFrac* Res = new TFrac(nr, dr);
return Res;
>;
TFrac* TFrac::Invert(void) // Обратное.
int nr, dr;
if (Numerator != 0)
if (Numerator > 0)
nr = Denominator;
dr = Numerator;
>
else
nr = -1 * Denominator;
dr = -1 * Numerator;
>
>
else
nr = 0;
dr = 1;
>
TFrac* Res = new TFrac(nr, dr);
return Res;
>;
bool TFrac::operator > (const TFrac& T) // Больше.
double a, b;
a = ((double)Numerator / (double)Denominator);
b = ((double)T.Numerator / (double)T.Denominator);
return a > b;
>;
Читайте также: