Произошла ошибка при проверке. HRESULT = '8000000A' - PullRequest
89 голосов
/ 27 декабря 2011

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

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

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

Ответы [ 16 ]

117 голосов
/ 31 июля 2014

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

Следуя рецепту v1.0.0.0 от MS, наконец-то он заработал для меня:

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

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

52 голосов
/ 03 января 2012

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

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

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

47 голосов
/ 12 июня 2012

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

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

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

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

42 голосов
/ 09 августа 2017

Обновление от 6/14 / 2017

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

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

Профессиональная версия: C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\VSI\DisableOutOfProcBuild\DisableOutOfProcBuild.exe


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

от README


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

ОШИБКА: во время проверки произошла ошибка. HRESULT = '8000000A'

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

Запустите «DisableOutOfProcBuild.exe help» для получения подробной информации об использовании.


30 голосов
/ 22 января 2017

Постоянное решение (+ для сборочных машин)

Visual Studio 2017

Для VS 2017 вызовите следующие сценарии CMD под целевой учетной записью Windows:

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

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

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

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

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

Visual Studio 2015 и более ранние версии

от CMD для текущего пользователя Windows

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

Но я также обнаружил, что если я буду использовать консоль CMD дляHKCU с предложенным исправлениемREG ADD HKCU\SOFTWARE\Microsoft\VisualStudio\14.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\14.0_Config\MSBuild /t REG_DWORD /v EnableOutOfProcBuild /d 0 /f
@REM (use 12.0_Config for VS2013)

Solver для серверов сборки

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

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

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

5 голосов
/ 19 апреля 2017

Как указано в комментариях здесь , для 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

5 голосов
/ 14 июня 2012

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

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

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

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

3 голосов
/ 13 сентября 2012

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

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

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

1 голос
/ 10 декабря 2012

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

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

0 голосов
/ 08 января 2019

Я использую VS 2017, но ни одно из вышеуказанных решений не работает. Итак, обновили последнюю версию VS 2017 и применили решение @AussieAsh, и оно отлично работает ...

Я надеюсь, что это решение, возможно, кто-то будет работать.

...