Visual Studio 2017 не компилирует небольшие изменения в коде при сборке для выпуска - PullRequest
0 голосов
/ 13 мая 2018

Это иногда случается, когда я делаю небольшие изменения в исходном коде, такие как удаление строки кода или изменение какого-либо значения.

case A

  1. измените player.y = 100; на player.y = 250;
  2. код компиляции с CTRL + F5
  3. игрок все еще появляется на y: 100
  4. измените player.symbol = "O"; на player.symbol = "P";
  5. код компиляции с CTRL + F5
  6. игрок теперь появляется в правильном месте y: 250

До сих пор я пробовал

  • Чистое решение - это работает, но я бы предпочел не полагаться на это всякий раз, когда я делаюизменение
  • Build проверено для проекта в Build > Configuration Manager...
  • CTRL - SHIFT - B все еще компилируетсянеправильный код.
  • , запускающий VS от имени администратора - все еще компилирует неправильный код.
  • Я посмотрел дату создания исполняемого файла.Он не обновляется при компиляции.
  • удаление исполняемого файла перед компиляцией повторно создает тот же исполняемый файл без изменений.
  • У меня была такая же проблема в другой установке Visual Studio на этом же компьютере

Проект расположен на локальном жестком диске.

edit: Я нашел эту ссылку .Проблема кажется очень похожей, хотя при тестировании она распространяется не только на редактирование чисел с плавающей точкой.Я использую Visual Studio Community версии 15.7.1, но эта проблема также возникла до исправления.

Похоже, что этого не происходит (пока) при сборке для отладки.

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

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

Что касается CTRL + F5 , находитесь ли вы в режиме debug или release, просто говорит Visual Studio, что вы хотите запустить без отладки, поскольку в нем нет ничегоделать с компиляцией и сборкой проекта или решения.Вы уверены, что не путаете CTRL + F5 с CTRL + F7 , как пользователь SoronelHateir упомянул в комментариях?После внесения любых изменений в исходный код рекомендуется сначала перекомпилировать этот отдельный файл, чтобы убедиться в отсутствии ошибок компиляции.Тогда хорошо перестроить этот текущий проект в рамках решения.

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

Я скажу это снова;да, это может показаться болезненным, когда приходится делать чистое решение и завершать восстановление, но через некоторое время это самый безопасный путь для проверки того, что все объектные файлы обновлены.То, что вы видите в своем собственном решении, является побочным эффектом запуска программы с обновленным кодом, но выходные данные совпадают с результатами более старых объектных файлов.Это является результатом того, что среда IDE использует устаревшие или устаревшие объектные файлы, которые уже существуют, поскольку вы не перестраивали решение.Очистка решения удаляет все старые объектные файлы, а также любые промежуточные файлы, которые используются для компиляции исходного кода в единицы преобразования для создания соответствующих объектных файлов.

В среде IDE есть настройки, которые другие пользователи упоминали выше, например, пользователь: Bo Persson заявил из своего ответа, что вы можете изменить поведение Visual Studio для перекомпиляции, перестройки проекта или решения.

0 голосов
/ 14 мая 2018

В visual studio после внесения изменений я всегда нажимаю (в строке меню):

Build - Перестроить решение

Обратите внимание, что это отличается от " CTRL + F5 " и " CTRL - SHIFT - B " ион всегда подберет все изменения и перекомпилирует вашу программу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...