Почему при создании проекта установки появляется сообщение об ошибке «Произошла ошибка при проверке. HRESULT = '80004005'»? - PullRequest
22 голосов
/ 12 июня 2009

Почему я получаю следующую ошибку при создании проекта установки?

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

Ответы [ 11 ]

21 голосов
/ 28 марта 2012

Один проект в решении имел ToolsVersion="4.0" (в файле .csproj), изменил его на ToolsVersion="3.5", и проект установки строится нормально.

15 голосов
/ 13 апреля 2012

Обе причины, которые я нашел, уже есть в других ответах, но они в отдельных ответах и ​​не полностью объяснены. Так что, надеюсь, это объединит возможности и даст хорошие средства для отладки каждого из них. :)

Общая причина

Моя проблема не была ошибкой зависимости. Тем не менее, это, кажется, общая причина. Итак, в основном вам нужно проверить ваш файл MSI и убедиться, что все зависимости все еще действительны. Вероятно, лучшим ответом блога о том, как можно легко решить эту проблему, если это проблема с зависимостями, является Ошибка при проверке. HRESULT = '80004005' .

Выписка из блога :

Выполните следующие действия для устранения неполадок.

  • Если у вас есть несколько выходов проекта в вашем решении, определите проект, который вызывает проблему. Вы можете сделать это, удаляя один проект за раз из Проекта установки (S), пока ошибка не исчезнет.
  • После того, как проект будет определен, укажите ссылку, которая может вызвать проблему.

    • Проверьте, ссылается ли проект (A) на проект, который был удален из решения. - Удалить такие ссылки, если таковые имеются.
    • Проверьте, ссылается ли Project (A) на проект, который был перемещен в другое физическое местоположение после его добавления в качестве ссылки. - Удалить и добавить такие ссылки.
  • Перестройте проект установки после исправления ссылки, чтобы увидеть, исчезнет ли ошибка.

Альтернативная причина

Однако моя проблема была связана с управлением версиями в Visual Studio. Таким образом, если ваши зависимости действительны, и вы все еще получаете эту проблему, то вы решаете это, если это проблема с VS2010 .

В основном, если вы запустите MSBuild и увидите это предупреждение:

Файл проекта содержит ToolsVersion = "4.0", который не поддерживается эта версия MSBuild. Рассматривать проект так, как будто он ToolsVersion = "3,5"

Тогда проблема в версиях Visual Studio. Это означает, что один проект был открыт или создан в Visual Studio 2010, а затем сохранен или добавлен в существующее решение 3.5. Я просто искал во всех файлах моего проекта ToolsVersion="4.0" и обнаружил файл .csproj, который нарушил работу, открыл его в текстовом редакторе и вручную изменил 4.0 на 3.5.

5 голосов
/ 12 июня 2009

Эта ошибка связана с ошибкой зависимости. Я удалил все ссылки на мой основной выходной проект и добавил их снова. Теперь он компилируется в порядке!

4 голосов
/ 23 августа 2011

В моем случае у моего решения (VS2008) был проект, на который также ссылалась другая версия (VS2010). В решении VS2010 я обновил проект до .NET 4.0. Позже, когда я понял, что проект также используется в другом решении, я опустил его до .NET 3.5. По какой-то причине в файле csproj все правильно изменилось, за исключением одного места, которое упоминается здесь: Ошибка в проекте установки HRESULT = '80004005'

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

4 голосов
/ 01 августа 2009

Я столкнулся с этим вопросом сегодня. Решение в моем случае? Перезапустите Visual Studio 2008.

3 голосов
/ 05 мая 2016

Я потратил огромное количество времени на это сам, хотя ничего из вышеперечисленного не сработало. Но я нашел другое решение со взломом реестра, вам нужно добавить новое значение DWORD (EnableOutOfProcBuild) (0) к HKCU\SOFTWARE\Microsoft\VisualStudio\14.0_Config\MSBuild\EnableOutOfProcBuild

Примечание : это для Visual Studio 2015

3 голосов
/ 28 марта 2011

Хотя удаление и повторное добавление зависимостей проекта будет работать во многих случаях, важно отметить, что:

Сообщение об ошибке «Произошла ошибка при проверке. HRESULT = 80004005.» обычно происходит, когда проект ссылается на другой проект, который не добавляется в правильное [sic] решение. Проект установки поддерживает только проекты зависимостей в рамках одного решения. 1

1 голос
/ 07 декабря 2010

В моем случае я установил Visual Studio 2010 вместе с Visual Studio 2008. Мой проект установки при открытии в Visual Studio 2008 выдал ту же ошибку, но в Visual Studio 2010 все было в порядке.

Если скопировать на другой компьютер, на котором не было Visual Studio 2010, но имел Visual Studio 2008, он скомпилируется.

0 голосов
/ 13 августа 2014

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

У меня была такая же проблема. Это не будет компилировать мой проект, но не было ошибок. Все, что я мог видеть, было "Build Failed". Я открыл файл «Вывод» (нажмите «Просмотр» -> «Вывод» в меню), и он сказал мне, какая именно ссылка (в моем случае .dll) вызывала проблему.

Я удалил и заново создал ссылку, и она изменила имя ссылки с Microsoft.Office.Core (которая, по-видимому, была только 32-битной версией) на «OFFICE». Тогда все работало отлично. - Обязательно запишите путь к файлу, на который вы ссылаетесь, в окне свойств ... Мой новый путь был точно таким же, но ссылочное имя все равно изменилось ... все еще царапая мою голову по этому. ..

Итак, мораль этой истории в том, что ... Когда у вас нет ошибок и ваша сборка не удалась, откройте вкладку «Вывод», и это может помочь.

0 голосов
/ 04 июня 2014

Я прочитал этот ответ из другого поста о переполнении стека, и он сработал для меня.

Откройте файл проекта установки (.vdproj) в Блокнот (или любом другом текстовом редакторе). Удалите эти строки в начале файла .vdproj:

"SccProjectName" = "8:"
"SccLocalPath" = "8:"
"SccAuxPath" = "8:"
"SccProvider" = "8:"

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

...