При проверке произошла ошибка. HRESULT = '8000000A'



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



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



есть ли у кого-нибудь советы о том, почему именно эта ошибка возникает и как ее исправить?

764   14  

14 ответов:

Это известная проблема в Visual Studio 2010 (состояние гонки). Смотрите этот пункт Connect.

мы также столкнулись с этим, и у нас был очень неудовлетворительный вызов поддержки по этой проблеме с Microsoft. Короче говоря: это известная проблема, она не будет решена, и Microsoft советует отойти от проектов установки Visual Studio (.vdproj).

мы обошли эту проблему, запустив сборку MSI во второй раз, когда она не работает в первый раз. Несимпатичный, но он работает большую часть времени (частота ошибок снижается от ~ 10% до ~ 1%).

обновление для тех, кто получил эту проблему для VS2013 или VS2015 после обновления проекта установки VS200X с помощью расширения проектов установщика Microsoft Visual Studio.

следуя рецепту для v1.0.0. 0 от MS, наконец, заставил его работать для меня:

Проекты Установщика Microsoft Visual Studio

к сожалению, мы не смогли решить все случаи проблемы командной строки для этого выпуска, поскольку мы все еще исследуем соответствующие способ их решения. Но у нас есть решение, которое мы считаем, будет работать почти для всех из них. Если вы все еще страдаете от этой проблемы, то вы можете попробовать изменить значение DWORD для следующего значения реестра на 0:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0_Config\MSBuild\EnableOutOfProcBuild (VS2013)
или
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio.0_Config\MSBuild\EnableOutOfProcBuild (VS2015)
Если этого не существует, вы можете создать его как DWORD.

Я читал где-то в интернете об этом, и я исправил это так (было предложено кем-то):

  • открыть файл проекта установки (.vdproj) в блокноте (или другом текстовом редакторе)
  • удалить эти строки в начале .файл vdproj:

    "SccProjectName" = "8:"
    "SccLocalPath" = "8:"
    "SccAuxPath" = "8:"
    "SccProvider" = "8:"
    
  • построить заново - ошибок нет

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

обновление от 14.06.2017

расширение Microsoft Visual Studio 2017 Installer Projects теперь включает вспомогательный инструмент командной строки для упрощения применения параметра реестра Проекты Установщика Microsoft Visual Studio 2017

пример пути инструмента (на основе установленной версии Visual Studio)

Профессиональный Вариант: C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


Community Edition: C:\Program Files (x86)\Microsoft Visual Studio17\Community\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe

из README


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

ошибка: произошла ошибка при проверке. HRESULT = '8000000A'

инструмент предназначен для Visual Studio 2017+ и устанавливает этот ключ reg для определенного установленного экземпляра Visual Studio для текущего пользователя. Поэтому, если вы устанавливаете это на агенте сборки, обязательно используйте учетную запись пользователя, которую будет использовать сборка.

Run " DisableOutOfProcBuild.exe help " для деталей использования.


постоянное решение (+ для сборки машины)

Visual Studio 2017

для VS 2017 вызовите следующее под целевым пользователем:

сообщество издание
профессиональный издание
предприятия издание

TL; DR. заметки для бедных DisableOutOfProcBuild.exe предлагаемое решение Microsoft, которое я использую для VS 2017.

  1. DisableOutOfProcBuild.exe не предполагает, что вы будете звонить это из папки установки. Кстати, если вы хотите построить .vdproj, вы должны установить VS.
  2. DisableOutOfProcBuild.exe будет работать только в том случае, если текущий каталог CMD установлен в место установки DisableOutOfProcBuild.исполняемый.

например, для VS Professional edition мы должны позвонить

CD "C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild"
CALL DisableOutOfProcBuild.exe


в Visual Studio 2015 и ранее

по CMD для текущего

для многих людей создание/коррекция под HKEY_CURRENT_USER\.. не всегда работает или работает постоянно.
Пытаясь решить эту проблему, я обнаружил, что на самом деле мне нужно создать/изменить какой-то странный ключ под разделе hkey_usersHKEY_USERS\S-1-5-xx-xxxxxxxxxx-xxxxxxxxx-xxxxxxxxxxx-xxxxx\...\MSBuild

но я также обнаружил, что если я буду использовать консоль CMD с предлагаемым исправлением
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
это будет записывать значение именно в этот странный ключ HKEY_USERS\S-1-5-xx-xxxxxxxxxx-xx..., только не к раздел HKEY_CURRENT_USER.

так, это работает с первого выстрела. Просто используйте консоль CMD.

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
@REM (use 12.0_Config for VS2013)

решатель для серверов сборки

С другой стороны, этот код всегда работает для текущей учетной записи пользователя, которая запускает его (из-за HKEY_CURRENT_USER). Но build-серверы часто используют выделенные учетные записи (локальная система и т. д.).

я исправил это на моих машинах сборки, добавив следующий простой пакетный файл в мою сборку задачи (с Jenkins, TeamCity, CruiseControl)

VS-2015, VS-2013, VS-2017-Community, VS-2017-Professional, VS-2017-Enterprise

исправление теперь загружено здесь:

http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=33186

вы можете прочитать об этом здесь:

http://connect.microsoft.com/VisualStudio/feedback/details/595632/inconsistent-hanging-with-devenv-2010

Как указано в комментариях здесь, для VS2017 вам нужно будет создать DWORD HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\15.0_[IDKey]_Config\MSBuild\EnableOutOfProcBuild Замените [IDKey] на суффикс ID существующего подраздела 15.0 VisualStudio.

например, если в VisualStudio вы видите ключ "15.0_abcd1234", это будет "15.0_abcd1234_Config".

regedit example

я столкнулся с этой проблемой после того, как я переместил свой проект на другой компьютер(VS 2010, несколько проектов в решении).

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

открыл /Debug папка под моим корневым путем проекта установки, там были MyProject.msi и setup.exe файлы, я удалил их и снова построил свой проект, он работал. Надеюсь, что это работает для некоторых парней, тоже.

проверка зависимостей проекта может помочь.

в VS 2010 щелкните правой кнопкой мыши в обозревателе решений, затем выберите обнаруженные зависимости и обновите зависимости, это когда-нибудь решит проблему.

со мной это было вызвано неверной .файл suo. (вызвано skydrive ) удаление этого файла решило проблему.

Visual Studio 2017 сохраняет информацию, ранее сохраненную в общедоступном реестре, в новом частном реестре: C:\Users\\AppData\Local\Microsoft\VisualStudio\15.0_6de65198\privateregistry.бин

здесь вам нужно добавить EnableOutOfProcBuild в соответствии с инструкциями для VS2013 / VS2015.

для обновления частного реестра можно использовать Regedit.

щелкните, чтобы выбрать узел HKEY_USERS.

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

теперь появится структура реестра, и вы можете перейти к Microsoft\VisualStudio\15. 0_Config\MSBuild

создайте новый DWORD EnableOutOfProcBuild со значением 0.

после этого выберите корень улья (независимо от того, как вы назвали его ранее) и используйте File > Unload Hive для отсоединения от него.

теперь он должен работать :о)

моя Visual Studio 2013 как-то стала экспериментальные поэтому он начал использовать другой раздел реестра для EnableOutOfProcBuild

enter image description here

чтобы убедиться, что я просто добавил еще одну строку в свой пакетный файл для установки значения реестра, и он начал работать:

REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
REG ADD HKCU\SOFTWARE\Microsoft\VisualStudio.0Exp_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f

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

сначала очистите решение, создайте решение и попробуйте создать установщик. Это позволит удалить ошибку.

Comments

    Ничего не найдено.