2016-08-04 4 views
-1

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

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

Но для этого одного проекта, каждое небольшое изменение независимо от того, насколько незначительным я получаю сообщение «Исходный файл отличается от того, когда был построен модуль. Хотелось бы, чтобы отладчик все равно использовал его». И если я выберу «да», тогда я получаю предупреждение о том, что я собираюсь использовать устаревший код.

Почему этот один проект не может обновить исходный код, чтобы синхронизировать с редактированием и продолжать изменения? Неужели я случайно не понял что-то в настройках проекта?

source out of date warning stale code warning

UPDATE

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

Открыт второй экземпляр VS и загружен в предыдущий проект, где я знал, что редактирование и продолжение работы. Я снова подтвердил, что он работает. Затем я поместил свойства проекта рядом и проверил каждый коммутатор и установил точно идентичные. Затем я добавляю VS-параметры и настройки рядом друг с другом и проверяю, что каждый параметр точно идентичен. Однако редактирование и продолжение работы в одном проекте, а не в другом.

ответ

0

Очевидно, что редактирование и продолжение несовместимо с объектами COM, связанными с помощью директивы #import.

Я обнаружил, что только один модуль моего проекта имеет устаревший код при редактировании и продолжения. этот модуль вводит объект ADO COM с помощью директивы #import.

Написание быстрого класса обертки для инкапсуляции содержимого COM и сохранения его в ловушке в собственном модуле решает мою проблему.

MSDN, кажется, не явно указать это в своей документации https://msdn.microsoft.com/en-us/library/0dbey757%28v=vs.110%29.aspx