Почему visual studio не обновляет код
Перейти к содержимому

Почему visual studio не обновляет код

  • автор:

 

Visual Studio C++ does not update new code after building

Before anything, I will first say that I’ve been looking everywhere for a solution to this problem for an hour now. There are many identical problems out there but none of the solutions help me.

I’m trying to debug a small project. When I started working on the project, I could place break points wherever I wanted and I would hit them. But for some reason, now when I place breakpoints outside of the main program (in a class definition, for example), the breakpoints hollow out while the code is running and I get a message saying the source code is different from the original version.

This led me to believe it was running a previous build, so I made an obvious change by having the code output some random letters «dajfhdjhfds»;

I hit F7 as usual. Got a message saying Build: 1 succeeded . Hit F5 , the program runs but does not display the random letters.

I clean my solution, then build and the changes show. I ‘rebuild’ the solution, and the changes show. The breakpoints also work.

But then if I make further changes, the breakpoints stop working and the changes don’t appear in the program. Visual Studio is always running old code. I don’t want to have to clean my solution every time I want to debug new code.

I’ve reset my settings, I checked off «build» in the configuration manager, I even started a whole new project and copied my code into new files. Same issue.

Visual Studio C ++ не обновляет новый код после сборки

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

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

Это заставило меня поверить, что он выполнял предыдущую сборку, поэтому я сделал очевидное изменение, заставив код выводить несколько случайных букв «dajfhdjhfds»;

я ударил F7 по-прежнему. Получил сообщение, говорящее Build: 1 succeeded , Удар F5 , программа работает, но не отображает случайные буквы.

Я очищаю свое решение, затем строю и изменения показывают. Я «перестраиваю» решение, и изменения показывают. Точки останова также работают.

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

Я сбросил настройки, отключил «build» в диспетчере конфигурации, я даже запустил совершенно новый проект и скопировал свой код в новые файлы. Та же проблема.

Решение

Проблема заключалась в том, что я скопировал код из исходного проекта в совершенно новый проект, сохраненный в другом месте. Когда я пытался построить проект в новом месте, он всегда создавал его в старом месте (странно, поскольку я копировал код непосредственно в новые файлы).

Когда я пытался запустить файлы, он искал встроенный код в новом месте. Поэтому он всегда будет иметь устаревший код.

Проблема может быть решена путем установки нового кода на прежнее место!

Другие решения

У меня была эта проблема возникла также с использованием WinForms. Я добавлял окна сообщений для проверки кода, и ничего не происходило, работали только уже существующие окна сообщений. Я не совсем уверен, как именно я это исправил, но после того, как в меню «Сборка» щелкнули «Построить решение», «Восстановить решение», «Очистить решение» и «Построить (имя программы)», проблема исчезла. В отличие от предыдущих проблем, я не копировал + вставлял код между решениями.

 

Я столкнулся с идентичной проблемой, и я думаю, что все началось, когда я заново создал проект под новым именем.
То есть мне пришлось все копировать.
Проблема в том, что я не знаю, что НЕ ПОЛУЧИЛОСЬ полностью, и теперь отвечает за требование перестроения, чтобы получить изменения в моем коде. Проверено решение и файлы проекта в текстовом редакторе и нет признаков старой структуры папок.

Visual Studio не обновляет проект сразу

У меня очень странная ситуация, когда изменения, внесенные в репозиторий моими коллегами при обновлении моей локальной копии программного обеспечения, Visual Studio не сразу их распознает и перезагружает. результат (и это очень странно) заключается в том, что большую часть времени я сохраню свои изменения без перезагруженных проектов и перезапишу изменения моих коллег. Мне так стыдно, что меня иногда спрашивают, почему мне пришлось изменить код, и на самом деле я этого не делал. Другое дело, когда я проверяю некоторые изменения уровня проекта VS, например, когда кто-то добавляет новый класс или форму или что-то еще и продолжает работать в Visual Studio, мне потребуется не менее 5-10 минут, прежде чем я получу предупреждение о том, что были некоторые изменения и попросили перезагрузить проект и т.д.

Я думаю, что в visual studio должна быть настройка, чтобы запускать автоматическую перезагрузку, но не может ее найти. Это влияет на меня и на другого человека, но мой самый странный, так как это может занять до 30 минут до перезагрузки проекта.

Любые идеи приветствуются

Это мои настройки enter image description here

Если вы работаете с Source Control, вам необходимо синхронизировать свою локальную рабочую область с сервером («получить» последний код), прежде чем какие-либо изменения ваших коллег будут скопированы на ваш компьютер.

Если вы не «получите» последний код перед внесением изменений, возможно, вам придется объединить свои изменения с чужим, что может быть сложным, трудоемким или даже опасным процессом, особенно если вы используете автоматическое слияние Visual Studio по умолчанию процесс, который обычно делает неправильную вещь, приводящую к по существу коррумпированному коду (делая его похожим на то, что вы удалили работу своего коллеги, как вы описываете, например).

Лучший способ работать с контролем источника — это «маленький и часто» подход:

    Получите последний исходный код, прежде чем начинать новую работу, чтобы ваш компьютер был как можно более современным. Как правило, хорошая практика часто «получать» последний код (например, я делаю это сначала каждое утро), чтобы любые конфликты слияния были отмечены и рассмотрены как можно раньше. Чем дольше вы ждёте до слияния, тем хуже происходит процесс слияния. (Caveat: проверьте с вашей системой сборки, что текущая версия кода на сервере работает до того, как вы ее получите, — вы не хотите, чтобы на вашем ПК был поврежден код, так как это может помешать вам вообще работать). Устройте свою работу как можно больше небольших шагов, которые можно безопасно проверять по мере их завершения (вместо того, чтобы работать в течение 3 месяцев сотнями файлов, а затем сбрасывать их в систему как одно массовое изменение) Когда вы будете готовы к регистрации, получите последний код, перестройте и повторно проверьте свои изменения, чтобы убедиться, что они все еще работают, когда они интегрированы с последним программным кодом. Только проверьте, все ли работает хорошо.

Также имейте в виду, что когда вы пытаетесь отредактировать файл, поставщик управления источником может автоматически «получить» последнюю версию этого файла для вас (что может заставить Visual Studio сказать вам, что оно перезагрузило файл и, возможно, объяснит, почему вы говорите иногда требуется некоторое время, чтобы «обновить», поскольку это происходит не до тех пор, пока вы не начнете редактировать новый файл, который недавно был изменен кем-то другим). Если это так, то правда заключается в том, что вы не «обновили» весь набор исходных кодов, а только один файл — в этом случае вам действительно нужно получить все последние изменения в исходном коде (если вы этого не сделаете вы можете обнаружить, что он несовместим или (что еще хуже) компилирует, но демонстрирует неопределенное поведение из-за того, что только часть обновляемого кода)

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

    Это напоминает вам, что вы сделали, что иногда может быть полезно для заполнения комментария, чтобы четко описать все ваши изменения и убедиться, что вы не пропустите важную заметку. Вы легко обнаружите все, что было связано с процессом слияния — будут фрагменты кода, которые, как представляется, будут созданы или удалены, что вы знаете, что не касались. Таким образом, вы сможете обнаружить и исправить эти проблемы перед тем, как зарегистрироваться, а не раздражать своих коллег, «удалив» их изменения. Я считаю, что это очень полезно для поиска временного кода отладки, который я забыл вынуть, прежде чем я заберусь. Иногда вы даже можете сделать двойной код на немного кода, который вы собираетесь проверить, и подумать: «А почему я это сделал?». И тогда вы можете решить пересмотреть и, возможно, даже переписать код, который, по вашему мнению, был хорошим.

Заключительное примечание. Параметры, отображаемые в вашем редактировании, относятся только к изменениям, внесенным в файлы на вашем компьютере, с помощью другой программы на вашем ПК. Если другой пользователь вносит изменения и проверяет его на источник, эти параметры не будут иметь никакого эффекта. Только когда ваша система управления версиями копирует эти изменения на жесткий диск вашего ПК, вы можете увидеть, что Visual Studio реагирует на эти изменения (в зависимости от того, насколько хорошо ваша система управления версиями интегрирована с VS).

Visual Studio Не замечает изменений кода [дубликат]

Если вы получаете это сообщение во время сохранения или компиляции сборки, просто закройте все файлы, а затем откройте любой файл для компиляции и сохранения.

Для меня причина в том, что я переименовал файл, и старый файл все еще был открыт.

7 ответов

На всякий случай кто-то сталкивается с той же проблемой, что и я: для меня это оказалось настройкой в ​​моем web.config следующим образом:

Что делает этот парень, так это он отключает уведомление об изменении файла, которое используется для перезапуска домена приложения при обнаружении изменений в критических файлах, например все в файлах bin или .config. Без fcn я бы сделал изменения кода, нажмите F5 и до сих пор вижу старый код, и все точки останова будут вытеснены из-за того, что источник отличается от того, что обслуживал IISExpress.

У меня была аналогичная ситуация с несколькими проектами в решении в Visual Studio 2013. Один из проектов, которые использовал проект запуска, не строился, когда я нажал кнопку «Запустить». Мне нужно было щелкнуть правой кнопкой мыши по проекту Startup и выбрать «Build Dependencies» и проверить проект, который там не строился.

Я столкнулся с этой проблемой, и я сделал следующее:

  1. Run Build Clean
  2. Закройте решение
  3. Удалите любые .suo и .user settings files
  4. Удалить все .ncb-файлы
  5. Открыть снова решение
  6. Выгрузить проект
  7. Обновить проект
  8. Удостоверьтесь, что проект настроен снова на запуск
  9. Отладка!

Вы можете выполнять только шаги 6-9, но я не знать, как вернуться в это состояние.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *