9 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

m_i_kuznetsov

Размышления о разработке программного обеспечения и информационных систем

То, что действительно важно, но чему нигде не учат

Устанавливаю VS 2015. До этого на нескольких машинах установка проходила успешно (м.б. потому, что ставил на Win7, а не на Win8.1, как сейчас?), а тут вылезла ошибка при установке Team Explorer:

Не буду описывать свои мучения. Использовал несколько разных пакетов установки, но проблема присутствует везде. Причина – некорректная установка пакета MS Visual C++ 2015 Redistributable. Решение здесь: “Расследование ошибки установки Visual Studio 2015” (спасибо @tangro). После ошибки удалил сбойный пакет, загрузил инсталляторы с сайта Microsoft и установил пакет с их помощью. Затем снова запустил установку Студии.

Posts from This Journal by “visualstudio” Tag

Просмотр дизассемблированного кода в VisualStudio

Речь пойдёт не о промежуточном коде IL, а об инструкциях процессора, сформированных JIT-компилятором. *** В процессе отладки кода бывает необходимо…

Code that writes code

“Scripty, a C# T4 Alternative”. Источник: Announcing Scripty: An alternative to T4 for compile-time code generation using the power of Roslyn…

Snippet Essentials for C#

An ultimate collection of 700+ snippets for C#.

Новости VisualStudio

В блоге Microsoft на Хабре.ру появилсь интересная статейка “Что нового в Visual Studio 2015 для энтузиастов C#, Visual Basic и Linux”.

Agile и VisualStudio

Статья в блоге Microsoft: “How to use Visual Studio Online to Streamline Your Application Development with Agile Methodology”.

64-разрядный проект ASP.NET

Исходные данные: Нужно создать web-приложение и подключить к нему 64-разрядную сборку, при этом разрядность сборки менять нежелательно. ОС…

Fast Select and Edit

Некоторые возможности для быстрой работы с кодом в VS. Прямая ссылка на видео:…

Heat Margin для VisualStudio

Heat Margin – расширение для Microsoft Visual Studio, которое показывает, какие места кода вы изменяете чаще всего.

Повышаю квалификацию: Методологии разработки корпоративного ПО

Курс “Модели жизненного цикла и методологии разработки корпоративных систем”. Честно говоря, ожидал большего от этого курса. Но компенсировал…

Soft, интернет, безопасность: новости, статьи, советы, работа

Избранное сообщение

Фетісов В. С. Комп’ютерні технології в тестуванні. Навчально-методичний посібник. 2-ге видання, перероблене та доповнене / Мои публикации

В 10-х годах я принимал участие в программе Европейского Союза Tempus “Освітні вимірювання, адаптовані до стандартів ЄС”. В рамк.

пятница, 27 ноября 2015 г.

Расследование ошибки установки Visual Studio 2015 / Системные сообщения об ошибках

Решили мы как-то перевести свой проект на 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

Читать еще:  Установка web сервера на debian

Отвечают на все эти вопросы специалисты первой линии техподдержки Microsoft, советы которых сводятся к «отключите антивирус», «проверьте чексуму образа со студией», «проверьте диск на ошибки». Ничего из этого, конечно, не помогает, о чём им и рассказывают, после чего они пропадают и больше не отвечают. Очень дружелюбная пользовательская поддержка, ничего не скажешь.

Ну что же, пора включать голову, брать в руки инструменты и разбираться. Поехали.

Итак, всё что у нас есть, это входная точка ошибки — проблема с Team Explorer. И ссылочка на лог-файл на приведённом выше скриншоте. Ну ок, давайте пойдём почитаем что там лог-файл думает о нашей ошибке.

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

Ладно, давайте зайдём с другой стороны. Team Explorer это (как и почти всё в современных версиях Visual Studio) — VSIX (компонент, расширение). Ставится отдельно от ядра студии специальной программой VSIXInstaller.exe, которая живёт в C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDE и умеет при установке этих самых 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, добавляем в него фильтр на открытие файлов и снова запускаем инсталлятор студии. Доходим до ошибки, смотрим логи.

Так, инсталлятор ищет 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 и смотрим что там загружается непосредственно после нашей сборки.

Читать еще:  Эффективная блокировка рекламы в Яндекс.Браузере с Adguard

Ага, 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 и она успешно дойдёт до конца!

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

Ошибка установки Visual Studio 2015 Enterprise Update 1 с Team Explorer

У меня такая же проблема, как и все остальные при установке Visual Studio 2015 с обновлением 1. Ошибка в установке Team Explorer, и, насколько я могу судить, она вызвана той же ошибкой, изложенной в этом вопросе (Несколько ошибок Установка Visual Studio 2015 Community Edition). Я попробовал шаги, описанные в ответах на этот вопрос, включая ответ на русском языке. Тем не менее, установка все еще не работает в одной точке. Я сейчас нахожусь на своем пути и из идей, чтобы попробовать.

Читать еще:  Программа для распечатки документов на принтере

Может ли кто-нибудь помочь?

Ну, я закончил открытие технической поддержки с Microsoft для решения моей проблемы. Они нашли проблему ниже в моих файлах журнала:

Актуальная проблема

Во время установки VS 2015 есть несколько пакетов VSIX установленным с помощью пользовательских действий. Например: TeamExplorer.vsix – это выполняется через пользовательское действие, а пакет TeamExplorer.vsix устанавливает Комбинированные файлы Team Explorer

мы обнаружили, что все пакеты VSIX не могут быть установлены. В результате VS не удается установить. Согласно лозунгу расслоения:

[2284: 0D4C] [2016-01-20T12: 53: 42] i301: Применение пакета выполнения: nugetvs, действие: Установить, путь: C:ProgramDataPackage Кэш <4BE72B6B-1E33-3D51-82CE-AE9702AA2664>v3.3.0.167пакетыWPTNuGetVisualStudio14.msi, аргументы: ‘ARPSYSTEMCOMPONENT = “1” MSIFASTINSTALL = “7” ‘ [29A0: 2B30] [2016-01-20T12: 54: 11] i000: MUX: ExecuteError: Пакет (nugetvs) не удалось: Идентификатор сообщения об ошибке: 1722 ErrorMessage: есть проблема с этим пакетом установщика Windows. Программа, выполняемая как часть установка не завершилась так, как ожидалось. Обратитесь в службу поддержки или поставщика пакетов. [2284: 0D4C] [2016-01-20T12: 54: 12] e000: ошибка 0x80070643: Не удалось установить пакет MSI. [2284: 0D4C] [2016-01-20T12: 54: 12] e000: Ошибка 0x80070643: не удалось выполнить пакет MSI. [29A0: 2B30] [2016-01-20T12: 54: 12] e000: ошибка 0x80070643: Не удалось настроить пакет MSI для каждой машины.

В соответствии с журналами VSIX мы обнаружили, что для большинства VSIX отказ пакетов (например VSIXInstaller_43a2c244-da76-4e26-b086-0341b7e77c1f.log):

System.MissingMethodException: метод не найден: “System.Collections.Generic.IEnumerable`1 Microsoft.VisualStudio.ExtensionManager.IInstallableExtension.get_InvalidCertificateInformation()”. в VSIXInstaller.App.LogSignatureDetails(расширение IExtension) в VSIXInstaller.App.LogExtensionDetails(расширение IExtension) в VSIXInstaller.App.InitializeInstall(Boolean isRepairSupported) в VSIXInstaller.App.OnStartup(StartupEventArgs e)

мы обнаружили аналогичный Bug 177561: сборка Slipstream не исправлена ​​(окончательная первоначальная версия) MSI, которые уже установлены другим (меньшим) пакетом и его все еще в активном состоянии. Я проверяю свою продуктивную группу и получаю к вам.

Как вы можете видеть, это известная проблема с Microsoft. Я попросил альтернативные предложения, чтобы установить это, и представитель службы поддержки попросил меня сделать чистую установку с версией non-update 1 VS Enterprise 2015. Следуя приведенным ниже инструкциям, выполните чистую установку, и она сработала.

Фактическое решение

  • Удалите Visual Studio 2015 Enterprise из программ и функций
    • Я также удалил среды выполнения С++ 2015 и библиотеки Entity Framework 2015, а также
  • Перезагрузите компьютер, если появится запрос
  • Переименовать или удалить папки –
    • C:Program Files (x86)Microsoft Visual Studio 14.0
    • C:Program FilesMicrosoft Visual Studio 14.0
    • C:usersuserDocumentsVisual Studio 2015
    • C:UsersпользовательAppDataRoamingMicrosoftVisualStudio14,0
    • C:UsersпользовательAppDataLocalMicrosoftVisualStudio14,0
    • C:UsersпользовательAppDataLocalMicrosoftVSCommon14,0
  • Перейдите в редактор реестра (start → run → regedit) и удалите/переименуйте следующие реестры –
    • HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVisualStudio14,0
    • HKEY_LOCAL_MACHINESOFTWAREMicrosoftVisualStudio14,0
    • HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio14,0
    • HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio14.0_Config
  • закрыть все экземпляры Visual Studio
  • скачать RTM для Visual Studio 2015 Enterprise не обновлять 1
  • Извлеките файл .iso с помощью средства извлечения, например WinRar.
  • Удалить% temp% перед тем, как начать установку Visual Studio 2015.
  • Установите Visual Studio 2015 с помощью этого извлеченного установщика установки

И. тада, установка наконец-то была успешной! Я надеюсь, что это поможет другим, у которых есть аналогичная проблема, которая не решена путем восстановления только времени выполнения С++.

Как только RTM был успешно установлен, я смог запустить установщик обновления 1 и обновить его успешно. С тех пор я также установил обновление 2 без проблем.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов: