Не устанавливается майкрософт визуал 2015. Исправление ошибки при установке Visual C++ Redistributable 2015

Расследование ошибки установки Visual Studio 2015

Решили мы как-то перевести собственный проект на Visual Studio 2015 — там ведь столько захватывающихфич! Вчера вот лишь решили, а уже сейчас с утра я запустил её инсталлятор. Небо было светлым, ничто не предвещало беды. Ну что, в самом деле, может пойти не так? Сколько уже этих Visual Studio переставлено — не счесть (я, помнится, ещё 6.0 когда-то ставил). Кто бы мог пошевелить мозгами, что эта тривиальнейшая задачка может вылиться в очень неожиданный забег по граблям длинноватой практически в целый рабочий день.

Похрустев мало твердым диском, прекрасный инсталятор показал мне совсем некрасивое сообщение о ошибке. Вот такое:

Хм. Не поставился означает, Team Explorer и ещё пару минорных пакетов. Ну ок. Закрываем, переустанавливаем. Не помогает. Удаляем студию, перезагружаемся, устанавливаем — та же ошибка. Лезем в Google с вопросцем о ошибке установки Visual Studio 2015 на шаге установки компонента Team Explorer и осознаем, что неувязка это массовая — 10-ки ссылок с тем же описанием:
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.0Common7IDE и умеет при установке этих самых VSIX-компонентов писать во временную папку (ну, ту, которая %TEMP%) логи о том, как всё прошло. Идём в %TEMP%, находим по времени ошибки из лога выше файлик, соответственный установке Team Explorer. Вот он:

Лог

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

Читайте также  Не работает flash player на youtube. Не работает Flash Player, что делать?

Хм, произошла ошибка при попытке загрузить сборку Microsoft.VisualStudio.Settings.14.0.dll. Первой моей мыслью было то, что студия как-то запуталась в порядке установки собственных компонентов и пробует употреблять при установке что-то, что ещё не установилось куда нужно. Так, есть у нас в системе таковая библиотека?

Оказалось — есть. Лежит в GAC, там где ей и положено лежать:

Так, что же получается? Сборка есть, она находится там, где необходимо, но не загружается. Может быть, битая? Берём IL DASM, загружаем — всё ок.

Может быть умельцы из Microsoft смогли написать таковой инсталлятор, у которого время от времени выходит не отыскать сборку в GAC? Берём Process Monitor, добавляем в него фильтр на открытие файлов и опять запускаем инсталлятор студии. Доходим до ошибки, смотрим логи.

Так, инсталлятор отыскивает Microsoft.VisualStudio.Settings.14.0.dll и находит её ровно там, где она и обязана быть — в GAC. Ок, что же не так?
Читаем ещё раз сообщение о ошибке: «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.». Так, ежели сама Microsoft.VisualStudio.Settings.14.0.dll есть и валидна — может быть дело в одной из её зависимостей? Возвращаемся в Process Monitor и смотрим что там загружается конкретно опосля нашей сборки.

Ага, vcruntime140.dll загружается. Это redistributable-библиотека от Visual Studio 2015. Ну, она-то точно обязана была поставиться на одном из первых шагов установки! Но давайте проверим, чем уже чёрт не шутит.

Проверка раз — в перечне установленных программ:

Проверка два — в папке C:WindowsSysWOW64:

Проверка три — это, фактически, «SUCCESSS» в логе Process Monitor:

Последняя проверка — вообщем железобетонный аргумент: видите, поискали, попробовали открыть, раскрылось удачно — означает файл найдён. Всё, подозрения снимаются, идём далее. Так, какую-же библиотеку инсталлятор VSIX пробует подгрузить последующей по логами Process Monitor?

Как это снова vcruntime140.dll уже в иной папке?! Выходит, найдя vcruntime140.dll в папке C:WindowsSysWOW64 и удачно её открыв (а мы знаем что так и было по логам выше!) загрузчик зависимостей всё-же почему-либо счёл её недостаточно неплохой и откинул. Как же так?! Это что — не майкрософтовская библиотека? Смотрим свойства:

Читайте также  Программы для нормальной работы игр. Что нужно для запуска игр на компьютере.

Да нет, обычная библиотека. Почему же не загрузилась? Давайте поглядим на неё внимательнее. Для этого в составе хоть какой версии Visual Studio есть хорошая утилита dumpbin. Запускаем её с вот таковыми ключами:

и смотрим на результаты:

Подождите-подождите… А почему это ты, библиотечка, 64-битная?! Ты же лежишь в папке C:windowsSysWOW64, где вообще-то место лишь 32-битным библиотекам! А ну-ка давайте поглядим, что же тогда лежит в C:WindowsSystem32?

А то же самое (кто не верит в размер — сможете проверить каким-либо WinMerge, они идентичны). Вы уже поймали, в чём суть? Ошибка закралась в инсталятор Redistributable-компонентов, входящий в инсталятор Visual Studio 2015 — он просто ставит 64-битные версии рантайм-библиотек и в папку для 64-битных библиотек (C:WindowsSystem32) и в папку для 32-битных (c:windowsSysWOW64). В итоге при предстоящей попытке использования 64-битной версии всё будет ок, а вот при попытке загрузки 32-битной версии будет то, что мы узрели при установке Team Explorer — загадочные ошибки вообщем без упоминания библиотеки vcruntime140.dll и Redistributable-пакета. И делай, что хочешь.

А что же мы желаем делать? А удалить x86-часть Redistributable-пакета Visual Studio 2015, скачать её отдельнос веб-сайта Microsoft и переустановить. Сюрприз — на веб-сайте Microsoft версия верная, она установит 32-битную версию библиотеки в C:windowsSysWOW64, опосля чего же можно перезапустить установку Visual Studio 2015 и она удачно дойдёт до конца!

Happy end.

Осталось как-то разъяснить начальству почему это я целый день устанавливал Visual Studio, ежели с сиим малыши в 3-ем классе за час управляются. В общем-то ради данной цели и была написана данная статья, а уж для чего вы её прочитали — я не знаю 🙂

P.S.Справедливости ради следует отметить, что поиск по той же дилемме с упоминанием слов «redistributable» и «vcruntime140» всё-таки выводит на одиноко валяющийся на обочине Stackoverflow вопросец с правильным ответом(кто-то прошел тот же путь, что и я!), который в виду собственной низкой оценки("+1" на момент написания статьи) не воспринимается людьми, как настоящее решение задачи. Не будем забирать у создателя того ответа пальму первенства и плодить излишние сути, ежели описанная в статье неувязка коснулась и вас, а предложенное решение посодействовало — вы сможете проголосовать за этот ответ на Stackoverflow.

Решено Не устанавливается Microsoft Visual C++ 2015 (x64)

Метод №1 Установка Microsoft Visual C++ 2015
Как уже было упомянуто в причинах, файл api-ms-win-crt-runtime-l1-1-0.dll является составляющей Universal C Runtime. Так что этот файл должен находиться в Microsoft Visual C++ 2015 года. Скачать данные библиотеки вы сможете с официального веб-сайта Microsoft, или же просто пользоваться ниже приложенной ссылкой: https://www.microsoft.com/ru-ru/download/confirmation.aspx?id=48145 Для 32-битной версии операционной системы нужно скачать Visual С++ 2015 x86. Для 64-битной версии же необходимо скачать и установить х86 и 64-битную версию Visual С++ 2015.

Читайте также  Как обрезать часть окружности в автокаде. Команда "Обрезать" в Автокаде (Autocad)

Метод №2 Установка обновления KB2999226
Данную библиотеку вы сможете отыскать в обновлении для операционной системы под номером KB2999226 для Windows Server 2008/Vista/Server 2008 R2/8.1. Как раз это обновление и является частью Microsoft Visual С++, которое не сумело корректно установиться. Отыскать вы это обновление сможете на официальном веб-сайте Microsoft, или же пользоваться комфортной ссылкой приложенной ниже: https://support.microsoft.com/ru-kz/kb/2999226 Но также вы сможете установить обновление KB2999226 через Центр обновления Windows. Зайдите в Панель управления и выберите соответственный пункт. Проверить наличие доступных обновлений. В перечне отысканных вы быстрее всего и отыщите KB2999226.

Метод №3 Переустановка приложения/игры
Может быть, что неувязка появилась со стороны запускаемой вами программы. Чрезвычайно может быть, что при ее установке пошло что-то не так и сейчас утилита по каким-то причинам конфликтует с файлом api-ms-win-crt-runtime-l1-1-0.dll Попытайтесь переустановить утилиту, а потом проверьте, исчезла ли появившаяся проблема.

Метод №4 Проверка ПК на наличие вирусов и вредного программного обеспечения
На ваш комп полностью могли просочиться вирусы либо вредное ПО, которые и повредили систему и ее файлы. Проверьте собственный ПК с помощью сканера Защитника Windows(Windows Defender) либо хоть каким иным посторонним антивирусом, которому вы доверяйте. Ежели он что-то отыщет, то подтвердите удаление зараженного элемента системы. Потом попробуйте запустить приложение, с которым появилась неувязка. Ежели ошибка все еще находится в системе, то выполните 1-ый и 2-ой способ, так как вирус был удален и он больше не будет повреждать файл api-ms-win-crt-runtime-l1-1-0.dll.

Метод №5 Восстановление Реестра Windows
Как было упомянуто в причинах возникновения ошибки, с записью о регистрации файла api-ms-win-crt-runtime-l1-1-0.dll могло что-то произойти. Для восстановления реестра используйте такие программы, как Reg Organizer либо CCleaner. Они чрезвычайно просты в использовании, так что у не обязано появиться никаких заморочек при их эксплуатации.

Остальные способы тут: https://gamesqa.ru/kompyutery/api-ms-win-crt-runtime-l1-1-0-dll-4808/

 

Оставьте комментарий