Visual Studio 2010 не строится перед запуском при изменении кода

126

Я много лет использую F5 (Начать отладку) для создания кода (если он устарел), а затем для отладки. Это работало и на VS 2010, однако сегодня отладка просто начинается без сборки. Скажем, я выполняю очистку проекта, а затем нажимаю F5 вместо того, чтобы создавать его, чтобы он мог его запустить, выдает сообщение об ошибке, говорящее, что exe не существует для запуска. Как мне заставить его сначала построить? Что могло измениться?

jamone
источник
1
Я была такая же проблема. Это происходило с первого по следующий день, и я ничего не менял в диалоговом окне «Параметры». Ответ Ганса решил мою проблему.
jbe
Я только что столкнулся с этим недавно, опубликовал отчет об ошибке в msft connect, выразите свой голос, чтобы, надеюсь, заставить их исправить это connect.microsoft.com/VisualStudio/feedback/details/626414/…
Джейсон

Ответы:

164

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

Ганс Пассан
источник
7
Просто проверил и установлен на Always Build ... Так что этого делать не должно.
jamone
5
Работает на моей машине. Раньше работал над твоим. Следующая перезагрузка.
Ханс Пассан,
3
Перезагрузка не исправила это, но изменение «На запуске, когда проекты устарели» = Всегда строить, чтобы не запускать сохранение / выход из VS, а затем изменение его обратно исправило это.
jamone
3
Это ошибка. Хотите отправить его на connect.microsoft.com?
Ханс Пассан
1
@Hans: конечно, как это воспроизвести? Убедить людей из Microsoft Connect в том, что это действительно проблема, практически невозможно, если она не воспроизводима. Это имеет смысл только потому, что если вы не можете, то есть шанс, что один из разработчиков не может
NotMe
119

У меня была эта проблема, и это оказался диспетчер конфигурации. Я недавно перешел с Debug | Mixed CPU на Debug | Any CPU, и проект не был настроен для сборки в этой конфигурации

Тим
источник
Это также решило проблему для меня - похоже, это вероятная причина этой проблемы.
gstercken
3
Отличный совет! Не то, о чем вы могли бы подумать. Спасибо
Альмунд
1
Да, это исправило это для меня! Просто щелкните все флажки рядом, чтобы встроить диспетчер конфигурации. Спасибо, Тим!
chaz
Исправлена ​​аналогичная проблема и у меня. Спасибо!
Остин Томпсон
1
Моя проблема заключалась в выборе неправильной конфигурации! У меня был отдельный проект, в котором каждая конфигурация написана на другом языке, и для комбинации была выбрана одна из этих конфигураций. Просто изменил его на Debug_Unicode, и теперь он строится!
серджиол 03
22

откройте диспетчер конфигурации и проверьте, установлен ли флажок в столбце сборки для вашего запускаемого проекта. У меня была та же проблема, но флажок не был активен, поэтому я проверил его, и теперь он работает!

Майкл Шерф
источник
Спасибо мне помогло. Я упустил из виду вариант. ;)
Skalli
17

Помимо вышеперечисленного, также убедитесь, что флажок «Создавать только запускаемые проекты и зависимости при запуске» не установлен (в Инструменты -> Параметры -> Проекты и решения -> Сборка и запуск).

Ало
источник
1
У меня была эта проблема, и это было решение. Спасибо.
Роберто Луис Бисбе
1
Это исправило это для меня, но похоже на ошибку. Рассматриваемый проект является зависимостью и должен быть построен.
KingOfHypocrites
Это ужасный параметр, чтобы не отмечать его, если у вас несколько запускаемых или тестовых проектов.
cbp
Спасибо!! Microsoft следует переформулировать и изменить это, чтобы оно было значимым. Мне непонятно, что значит делать, когда это проверено.
Кэмерон
10

У меня тоже была эта пробема. Проверил все, что предлагалось, безрезультатно. Оказывается, мои часы на моем компьютере были переведены вперед примерно на 12 часов, и я сохранял данные на сетевой диск. Временные метки файлов были неверными, и VS не думал, что мне нужно собрать мой проект, потому что файлы были суперсовременными.

Vinnie
источник
3

Некоторое время я всегда не понимал, почему мой ноутбук (двухъядерный 2 ГГц, 2 ГБ оперативной памяти) компилировал мой веб-сайт быстрее, чем мой настольный компьютер (четырехъядерный 3 ГГц с оперативной памятью 16 ГБ). У обоих есть SSD-диски. Все параметры сборки настроены правильно (то же самое, количество ядер = параллельные сборки), но ноутбук запускает сайт за несколько секунд, а dekstop запускает сайт примерно за 30 секунд.

Обнаружена дополнительная опция в разделе «Страницы свойств» сайта, в разделе «Сборка» для ноутбука установлено значение «Без сборки», а для рабочего стола - «Сборка и запуск». Обнаружил его только после того, как сайт запустился на ноутбуке без проверки на наличие ошибок компилятора.

Может помочь кому-то в будущем, поэтому подумал, что добавлю это в этот пост

Jeggs
источник
2

Еще одна точка для проверки находится на странице свойств решения -> Свойства конфигурации -> конфигурация: убедитесь, что все флажки в столбце сборки установлены для проекта, который необходимо повторно выполнить.

Даниэль Нгуен
источник
1

Я пробовал предыдущие решения с неоднозначными результатами. НО это, кажется, работает для меня всякий раз, когда я перехожу к Build -> Clean Solution

Но делать это каждый раз становится раздражающим.

user2813625
источник
1

Для меня это происходило из-за настроек конфигурации сборки. В моем решении Visual Studio есть несколько проектов, которые представляют собой смесь проектов C # и C ++. Теперь я понял, что по какой-то странной причине Visual Studio предпочитает не строить проекты C ++ по умолчанию, о чем свидетельствуют параметры конфигурации сборки. Я заметил это сразу после добавления в решение нового проекта C ++ . Я не знаю, почему VS не придерживается того же подхода при добавлении нового проекта C # в решение.

Щелкните правой кнопкой мыши файл решения в проводнике решений -> щелкните свойства в контекстном меню -> выберите узел свойств конфигурации на левой панели -> выберите узел конфигурации . Он показывает список всех проектов в решении. Первый проект LearnDs - это проект на C ++. Обратите внимание на флажок в столбце сборки в первой строке. Он не отмечен. Это было причиной того, что Visual Studio 2010 не собирал мой проект C ++ (при нажатии F5), который содержал некоторые изменения с момента его последней успешной сборки.

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

В тот момент, когда я установил соответствующий флажок и сохранил настройки конфигурации сборки для решения, все заработало. Теперь я вижу подсказку ниже всякий раз, когда нажимаю F5, поскольку VS может обнаружить, что с момента последней сборки были внесены некоторые новые изменения. Это приглашение вызвано тем, что мои настройки в меню «Инструменты» -> «Подменю« Параметры »-> узел« Проекты и решения »->« Узел сборки и запуска » ->« При запуске, когда проекты устарели »») установлен на Prompt to build. Если вам не нравится это приглашение, установите для него значение Always build.

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

RBT
источник
1

Инструмент -> Параметры -> Проект и решения.

  1. Установить как «Всегда строить / запрашивать сборку» для «Выполняется, проект устарел»
  2. Снимите флажок «Создавать только запускаемые проекты и зависимости при запуске».
Poovizhi
источник