Сборка проекта Visual Studio 2015 завершилась неудачно, но ошибок нет


110

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

Я изменил подробность вывода MSBuild на «Диагностика», надеясь, что это поможет мне определить проблему, и теперь я застрял. Вот как выглядит результат:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========

1
Отображается ли ваше окно со списком ошибок?
Karthik

Перейдите в меню «Просмотр» -> «Выбрать список ошибок» и проверьте, есть ли у вас какие-либо ошибки. В идеале вы должны получить его в списке ошибок. Не закрывайте окно со списком ошибок и попробуйте собрать проект и посмотрите, что произойдет ...
Картик,

4
Итак, вот что произошло: я разместил этот вопрос и, предположив, что не получу ответа сразу, закрыл проект. Вы предложили мне открыть его резервную копию, открыть список ошибок и перестроить. Сработало отлично, ошибок нет, все удалось!
Роб Гринли,

@RobGreenlee: См. Мой ответ, держу пари, что «Вкладка ошибок» была активна, когда вы повторно открыли решение!
jpo38

Ответы:


101

У меня была та же проблема, и закрытие и повторное открытие Visual Studio устраняет ее.

Я также пробовал очистить раствор и очистить не удалось.

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


22
Если не помогает перезагрузка. Я часто сталкиваюсь с этой проблемой, когда добавляю проект в свое решение, когда другая целевая платформа ссылается на другие проекты инфраструктуры.
Бастиан Линдерс

7
В моем случае перезапуск VS или очистка решения не помогли. Однако удаление .suo из папки .vs решило проблему
челлик

@cellik: В моем случае это не работает. Что стоит .. Пользуюсь Enterprise edition.
KMC

4
У меня была такая же проблема после изменения времени моего компьютера с часового пояса CEST (GMT + 1) на часовой пояс США (GMT-7), похоже, он не мог справиться с тем, что метка времени последней сборки была в будущем. После перезапуска VS все в порядке.
martinh_kentico 01

2
Удаление файлов .suo тоже помогло мне, перезапуск и очистка - нет.
Иоганн Маркс

118

Возможно, вы видите не все ошибки сборки.

Изменив раскрывающийся список после значка «Сообщения» с «Сборка + Intellisense» на «Только сборка», вы сможете увидеть ошибки, возникающие во время сборки, которые не обнаруживаются Intellisense. Смотрите скриншот ниже:

Построить


3
Чувак, ты мой спаситель!
KMC

20
Почему ошибки «Только сборка» не присутствуют в «Сборка + Intellisense»?
CodyF

Это помогло отобразить ошибки в списке ошибок, но строки кода с ошибками не имеют красных подчеркиваний. Полагаю, это проблема Intellisense.
Дрю

Работает для меня. Моя перешла на Build и Intellisense, которые скрывали ошибки сборки. Только сборка работает и отображает ошибки сборки.
HerrimanCoder

1
Вы, сэр, спасли мне день .. отличная работа .. Большое спасибо
MA9H 06

32

Я видел регулярные случаи, когда VS2015 сообщал "сбой сборки", но не отображал никаких ошибок в окне ошибок. Исходя из древнего фона командной строки, я наконец посмотрел в окно вывода. В окне вывода отображалось сообщение об ошибках компилятора, но эти ошибки не записывались в окно ошибок. Я никогда не видел этой проблемы под VS2013.

Обычное закрытие VS и повторное открытие этого условия не устраняет. (В VS2013 это был обычный способ отбросить XAML intellisense сзади и заставить его перестать фиксироваться на «ошибке», которая была исправлена.)

До сих пор это всегда было связано с ошибками компиляции в файле CS XAML-страницы. Я не помню, чтобы видел это в CS-файле без страницы.

Пока кто-то не поймет, что нужно проверить окно вывода, такие вещи, как отчеты intellisense в окне ошибок, недопустимые ссылки на объекты в XAML, но отсутствие ошибок компилятора, отображаемых в окне ошибок, может вызвать ОЧЕНЬ путаницу, так как это "выглядит" как ошибки Intellisense сообщает об ошибках XAML. Но на самом деле это не так. Ошибки XAML - это всего лишь симптомы того, что файлы CS не могут быть скомпилированы, но при этом не отображаются сообщения об ошибках в окне ошибок.


20
Для тех из вас, кто все еще борется с невидимым окном ошибок, похоже, вы можете получить отображение ошибок компилятора в этом окне, выбрав Build Only в раскрывающемся списке Filter ErrorList To в окне Error List (раскрывающийся список не помечен ... Вы можете определить, какой именно, наведя на него указатель мыши и наблюдая за подсказкой).
Роберт Харви

2
@RobertHarvey ... это ключ ... но ПОЧЕМУ Intellisense отменяет сборку?
felickz

@RobertHarvey, именно так. Оказывается, как кто-то здесь предположил, я имел в виду несовместимый проект .net, но я не мог понять, в чем проблема, пока не переключил вывод на «Только сборка» на панели ошибок. Как только я это сделал, он сразу указал мне на проблему. Спасибо за совет.
Дэвид Гандерсон

Этот ответ был для меня ключом. Найдите "error CS" (без кавычек), чтобы узнать о возможных исключениях блокировки сборки.
granadaCoder

PS. Моя ошибка заключалась в том, что я использовал то же имя переменной в своем методе. "строка x = строка.Пусто;" например. У меня был обработчик исключений, в котором также было объявление «строка x».
granadaCoder

11

Удаление скрытой .vsпапки для меня работало для VS2015.

(Обратите внимание, что здесь сейчас находятся файлы SUO)


9

Это может произойти, если вы ссылаетесь на другой проект версии .NET Framework (в моем случае v4.5.2 против v4.5). Исправление этого устранит вашу проблему.


Это была моя проблема. К решению был добавлен новый проект v4.5.2, и я сослался на него из другого проекта v4.5. Переключил новый проект на v4.5, и все заработало.
Дрю

7

Я изменил часовой пояс на компьютере на +5: 30, а затем обратно на -5: 00 - вот что смутило VS. Когда я перезапустил VS, он снова работал нормально.


понятия не имею. Я использую контроль версий, так что может быть, что перепутали со временем ???
MB

6

Проверьте все версии вашего проекта Framework и убедитесь, что все они одинаковы или, по крайней мере, этот проект A не ссылается на проект B, если версия .NET Framework проекта B выше.


6

У меня была эта проблема с VS2015 Update 3 RC и Xamarin (общий проект .Forms).
Компилятор не останавливается, ошибки отображались только в окне вывода.
Это только для проектов Xamarin (с проектами VB.NET все работало, как ожидалось) ...
Чтобы попытаться найти причину проблемы, я изменил вывод сборки в VS:
- меню «Инструменты - Параметры»
- с левой панели : «Проекты и решения: сборка и запуск»:
- измените «Детальность вывода MSBuild» с «Минимальная» на «Диагностическая»

После этого компилятор остановился, и была отображена ошибка.
После этого я снова установил для параметра «Диагностика» значение «Минимальный» (как это было раньше) и ... он также работал с «Минимальным» (правда, я тоже перезапустил VS) ...

Итак ... кажется (по крайней мере, в моем случае), что только изменение (касание) параметра (MSBuild Output Verbosity ") решило проблему, и что это ошибка в VS и / или программном обеспечении интеграции Xamarin ...


1
Почему этот ответ не получил больше голосов? Это дает вам идеальное решение для отладки того, что не так,
Джон Деметриу

Проверьте мой ответ ниже. Я также думал, что ваше решение было правильным, но я понял, что даже с выходным уровнем «Диагностика» моя вкладка «Ошибка» останется пустой. Как и другие, вы, скорее всего, сохранили активную вкладку «Ошибка», и поэтому она начала нормально работать ...
jpo38

6

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

В моем случае, когда я открыл Visual Studio, часовой пояс был в GMT + 1: 00, и сборка прошла успешно. Затем я изменил часовой пояс на GMT + 5: 30, а затем, не перезагружая Visual Studio, я попытался запустить приложение, но сборка завершилась неудачно без каких-либо ошибок или предупреждений.

Я изменил часовой пояс на GMT + 1: 00, и сборка прошла без ошибок.


Большое спасибо - это сводило меня с ума весь день :-)
Индра

2

Что я сделал (после всего вышеперечисленного, а он все еще не работал), это просмотрел все папки bin и очистил их все (то есть проекты, на которые есть ссылки).

Это сработало для меня, надеюсь, что и для вас.


2

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


2

Проверьте предупреждения ..

У меня была новая библиотека классов с целевой .NET Framework 4.5, в то время как ссылочный проект был 4.0, что вызвало проблему со ссылками.

После модификации библиотеки классов с целевой .Net Framework 4.0 она работала правильно.


2

Ничего из приведенных выше ответов мне не помогло. После многих экспериментов я наконец обнаружил, что проблема заключается в ссылке на Microsoft.Net.Compilers v2.10.0 в одном из проектов. VS 2015 использует MSBuild v14, который не поддерживает эту версию Microsoft.Net.Compilers.


1

Для меня эта проблема была связана с настраиваемым параметром набора правил CodeAnalysis « IncludeAll ».

Похоже, что компилятор соблюдает этот параметр:

  <IncludeAll Action="Error" />

Но IntelliSense принял ДЕЙСТВИЕ по умолчанию для идентификатора правила, которым было «Предупреждение». Это объясняет поведение, наблюдаемое @RobertHarvey, когда вы фильтруете вывод по Build Only, и он отображается как ERROR , но если вы фильтруете по Intellisene Only, он отображается как WARNING . Фильтрация вывода по умолчанию Build + Intellisense кажется недетерминированной!

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

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

Это потенциально проблема, связанная с тем, что Intellisense не соблюдает параметр IncludeAll . См. Https://github.com/dotnet/roslyn/issues/7400


1

Это также может произойти при переносе проекта в Visual Studio 2015 со старой платформой. Проверьте свои предупреждения в списке ошибок. Вы можете увидеть что-то вроде project в настоящее время .NET версии 2.0 и требует .NET 3.5 или выше. Если вы обнаружите подобное предупреждение, перейдите в свойства своего проекта и выберите требуемый .NET Framework.


1

Пожалуйста, проверьте предупреждения. Иногда сборка не удалась из-за каких-то предупреждений.


1

Когда открываете решение, генерируете его, я вижу некоторые ошибки сборки или предупреждения на вкладке «Вывод», а на вкладке «Ошибка» не сообщается о каких-либо проблемах.

введите описание изображения здесь

Вы можете видеть, что конфигурация «Вкладка ошибок» в порядке (выбраны «Только сборка» и «Все решение»).

Обратите внимание, что после глубокого исследования я обнаружил, что это происходит только в том случае, если вкладка «Ошибка» еще не отображалась при запуске сборки!

Если вы активировали вкладку «Ошибка» перед выполнением сборки (или если это была текущая вкладка при запуске Visual), то вновь обнаруженные ошибки / предупреждения будут отображаться правильно:

введите описание изображения здесь

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

Пока нет лучшего ответа на эту проблему, чем « активировать вкладку Ошибка перед сборкой ».

Бьюсь об заклад, именно поэтому "перезапуск VS" иногда работает. Вы видите, что вкладка «Ошибка» пуста, вы закрываете и повторно открываете VS, затем «Вкладка ошибок» отображается по умолчанию, поскольку VS восстановил текущую активную вкладку из предыдущего сеанса. Вы строите, и теперь "Вкладка ошибок" заполняется ...! Тебе просто повезло.

Примечание. Сообщается об ошибке VS: https://connect.microsoft.com/VisualStudio/feedback/details/3132689.


Это решение сработало для меня. Со мной однажды случилось - никаких предупреждений не выводилось. Я открыл окно со списком ошибок и перестроил решение. На этот раз были отображены предупреждения. Я не могу воспроизвести ту же проблему снова даже после перезапуска VS.
IAN

1

Для меня сборка завершилась неудачно без ошибок, но после небольшого расследования я обнаружил, что ссылка на MSHTML не была найдена VS.

введите описание изображения здесь

Поведение появилось после обновления до Windows 10. Для исправления нужно зарегистрировать сборку из GAC. Чтобы узнать, как это сделать, перейдите к этому ответу MSHTML DLL в Windows 10 , где я нашел свой ответ.


0

Взято из этого ответа

Сбой компиляции, в окне вывода ошибок не было.

Чтобы попытаться найти причину проблемы, я изменил вывод сборки в VS: - меню «Инструменты - Параметры» - на левой панели: «Проекты и решения: сборка и запуск»: - измените «Подробность вывода MSBuild» с « Минимальный "на" Диагностический "

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


Речь идет не только о том, чтобы понять проблему, но и о том, как научиться ее устранять. Вот почему я включил процесс отладки других ответов, потому что именно он помог мне выяснить, что не так. Не просто случайные догадки о том, в чем может быть проблема,
Джон Деметриу

0

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

Дочерний узел «2» преждевременно завершился. Выключение. Диагностическую информацию можно найти в файлах в каталоге временных файлов с именем MSBuild _ *. Failure.txt.

Первоначально сборка зависала и не отображала никаких ошибок, если вы не пытались закрыть Visual Studio. После перезапуска он зависал на долгое время при сборке, а затем отображал вышеуказанное сообщение.

Удаление скрытой .vsпапки, восстановление / очистка решения и перезапуск Visual Studio не помогли. Удаление прикрепленного свойства сделало; следовательно, это может быть реальный код где-то, который не работает должным образом.

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

Обновить

Поскольку я привык разрабатывать традиционные приложения WPF, я не понимал, что нельзя «связать» пространства имен XAML с помощью .s с UWP. Я пытался установить прикрепленное свойство, используя

My.Namespace:SomeClass.SomeProperty="SomeValue"

В то время как это должно быть просто

MyNamespace:SomeClass.SomeProperty="SomeValue"

Это не так красиво, как мне нравится, но, по-видимому, это единственный выход.


0

Что сработало для меня:

Закрытие всех документов решило проблему для меня. (То же решение, если intelliSense перестает работать)

(вкладка правой кнопкой мыши - Закрыть все документы)



0

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

Проблема была в консольной программе, нельзя было пометить метод Main () как async **, что я и делал. Не уверен, почему Visual Studio не могла указать, почему именно проект не строился (каждый раз я получал 0 ошибок и 0 предупреждений). Я использую Visual Studio 2015 Enterprise.

Исправлено: Работа вокруг что здесь .


0

После обновления файла dll выяснилось, что новый файл нацелен на более высокую версию .NET Framework. Решение заключалось в том, чтобы перейти в свойства проекта и изменить целевую платформу на соответствующую версию.


0

MSBuild.exe изменяется в каталоге (C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin)

поэтому я просто заменяю MSBuild.exe с другого компьютера, на котором есть vs2015.

Теперь он работает нормально.


0

Я нашел решение, изменив .NET Framework с 4.5.2 на 4.0.

Проблема была вызвана ссылкой, несовместимой с выбранной в данный момент платформой.


0

Я только что очистил свои фильтры, и у меня это сработало. Значок очистки всех фильтров находится рядом с окном сообщений.


0

Начать новый проект. Скопируйте весь свой код в пространство имен ниже ConsoleApp38450983450.

Вставьте в новый проект под пространством имен ScrewedUpConsoleApp102343

Создавайте и запускайте безупречно


-1

Вы должны установить поле со списком справа под списком ошибок в разделе «Все решение», чтобы увидеть все ошибки. введите описание изображения здесь


1
На этот довольно старый вопрос уже есть принятый ответ, не похоже, что ваш очень короткий и неописуемый ответ здесь что-то добавляет. Кроме того, не ссылайтесь на изображения на внешних сайтах, а добавляйте изображения в свой ответ!
Dux
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.