Обе причины, которые я нашел, уже есть в других ответах, но они в отдельных ответах и не полностью объяснены. Так что, надеюсь, это объединит возможности и даст хорошие средства для отладки каждого из них. :)
Общая причина
Моя проблема не была ошибкой зависимости. Тем не менее, это, кажется, общая причина. Итак, в основном вам нужно проверить ваш файл 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
.