Visual studio не показывает ошибки
У меня есть решение Visual Studio 2010 с несколькими проектами. Я могу успешно строить с помощью Build - > Build Solution или Build - > Build MyCompany.MyProduct.Мой проект. После сборки я нажимаю CTRL+F5 и успешно запускаю проект запуска. Это работает, как и ожидалось.
после изменения исходного файла сохраните его, а затем снова создайте (с помощью Build - > Build Solution или Build - > Build MyCompany.MyProduct.MyProject) он успешно строится. Я все еще могу нажать CTRL+F5 и запустить запускаемый проект. Это снова работает, как ожидалось.
проблема заключается в следующем сценарии: После изменения исходного файла сохраните его и нажмите CTRL+F5, затем Visual Studio 2010 скажет, что сборка не удалась, и ошибок нет. И это не запускает мой стартап-проект (конечно).
Я что-то пропустила?
закройте Visual Studio, удалите .suo файл для вашего решения. Это скрытый файл в Windows и содержит настройки пользователя, но он также может делать гадости.
кажется немного поздно, но то, что сработало для меня, было проверить мое окно вывода.
У меня была ссылка на функцию, которая не существует. Я не знаю, почему он никогда не появлялся в списке ошибок, но окно вывода сообщило мне, где именно проблема.
попробуйте повторить те же шаги, изменив местоположение, в котором вы компилируете/запускаете. Убедитесь, что ваше новое местоположение имеет меньше папок для перемещения по сравнению со старым местоположением. Длинный путь к исходному коду привел к аналогичной проблеме для меня, и я преодолел ее, выбрав более короткий путь.
Я закрыл свою visual studio.
удалены все папки bin. (У меня была странная ошибка разрешения, поэтому я удалил файлы и задний трек удалил папки, включая bin).
снова открыта visual studio. Выполняется сборка или перестройка, и все снова работает.
Проверьте физический путь проекта, если длинный , скопируйте проект в какую-нибудь папку корневого каталога с очень коротким именем. И попытайтесь построить свой проект.
У меня была эта проблема и было одно предупреждение, но не удалось найти ошибок. В конце концов я скопировал команду build из окна вывода в командное окно и запустил ее вручную - она выплюнула четыре ошибки после предупреждения. Я понятия не имею, почему это работает.
требуемая команда должна быть помечена как "CoreCompile" и выглядеть примерно так: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /noconfig /nowarn:1701,1702,2008 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE;SILVERLIGHT;WINDOWS_PHONE /errorendlocation /preferreduilang:en-US /highentropyva- /reference:"C:\Dropbox\code
Если вы его не видите, попробуйте изменить настройки вывода сборки в разделе Инструменты - >Параметры - >проекты и Решения - >сборка и запуск, установите "MSBuild project build output verbosity" в нормальный или выше.
в случае, если некоторые другие люди испытывают эту проблему (я попытался сначала удалить файл SUO, но это не сработало для меня):
Я решил это, создав пустой новый проект в моем решении и импортировав все исходные файлы в новый проект. Вероятно, проблема сидела в файле проекта.
У меня была такая же проблема, решена следующим шагом
перейдите в инструмент - > опция - >проекты и решение->общие, убедитесь, что установлен флажок "всегда показывать список ошибок, если сборка заканчивается ошибками", в этом случае visual studio покажет список ошибок.
в моем случае я не видел ошибку контрактов кода в окне вывода:
Я решил это, отключив Результаты Кэша в коде контрактов windows для этого проекта, как было предложено в ответ.
Я работаю над проектом веб-сайта, который ссылается на проект библиотеки (в одном решении), когда я столкнулся с этой проблемой. Ошибка сборки, когда редактор выделял синтаксис и переходил к источнику. Очень неприятно.
после чистки решение, временные файлы, перезапуск VS и т. д., Я закончил тем, что исключил 2 оскорбительных файла, что позволило успешно построить решение, а затем, когда я снова включил их, все было построено правильно.
С. С. Позже я обнаружил ошибку в masterpage отделенного кода сайта (ссылки на значение перечисления, которое было удалено), который не отображается как ошибка. У меня были ошибки в masterpage codebehind причина (по-видимому) несвязанные проблемы раньше; я пытаюсь вспомнить, чтобы проверить там, где простого решения нет.
моя проблема возникла из преобразования функционального проекта vs2008 в vs2010. Все остальные проекты в решении встречались отлично, но этот построил бы часть MIDL, а затем остановился и потерпел неудачу. Подробные настройки сборки ничего не показали, поэтому, наконец, я создал совершенно новый проект со всеми файлами одинаково. Это сработало. Затем я сравнил настройки и, наконец, после изменения различных частей в соответствии, я обнаружил, что преобразованный проект имел MIDL - >General - > "Mktypelib Compatible", установленный в пусто. По-видимому, это был допустимый параметр в vs2008, но в vs2010 он, по-видимому, должен быть установлен в Да или нет (или наследовать).
это исправило мою проблему.
Если ваше решение содержит слишком много проектов ,
построить проекты индивидуально,
проверьте, какой проект не работает
для этого проекта проверьте ссылки этого проекта, если по какой-либо ссылке, если они имеют желтый цвет , удалите эту ссылку и добавьте ее снова , затем постройте и проверьте,
Это будет работать
проверьте окно вывода, каждую строку , в какой-то строке он может отображаться , зависимость-это их, но не нашел ее, то есть проблема, вызывающая
Это может быть связано с повреждением файла
имеет эту проблему при работе с рабочими процессами Sharepoint 2013 в VS 2013. Для ее решения сделали следующее:
- выгрузить worklfows (багги один) проект.
- удалить .csproj файл.файл пользователя
открыт .файл csproj в блокноте и удалите следующие строки:
после перезагрузки проекта в решение VS снова добавил точно такие же строки, но никаких проблем с LoaderException сейчас.
У меня сегодня этот вопрос. после изменения многословности сборки на диагностику, как предложил @Jac, я обнаружил, что проблема зависит от одного из моих файлов resx. По-видимому, одно изображение было corupted или было слишком большим, я удалил его, и он работал!
Я столкнулся с этой проблемой два дня назад. Я проверил выходные данные Windows, и я основал отсутствующую ссылку на VBIDE: не могу найти сборку оболочки для библиотеки типов VBIDE. Я показал все файлы в обозревателе решений, расширенные ссылки, и я нашел ссылку на эту сборку. Я не знаю, как эта ссылка попала в мой проект, и я был уверен, что она мне не нужна. Я просто удалил его и все было исправлено.
еще одна вещь, чтобы проверить, что если какой-либо из ваших исходных файлов открыты, он не сможет построить. Мне пришлось перезагрузить компьютер.
несколько раз, если путь к каталогу больше 248 символов, это приведет к сбою решения. Убедитесь, что полный путь меньше.Я столкнулся с той же проблемой, что и я, и это сработало для меня.
С помощью окна Список ошибок можно выполнять следующие задачи.
Поиск синтаксических ошибок, обнаруженных функцией IntelliSense.
Поиск ошибок развертывания, некоторых ошибок статического анализа и ошибок, обнаруженных при применении политик из шаблона предприятия.
Фильтрация отображаемых записей и столбцов данных, которые будут показаны в каждой записи.
Поиск конкретных терминов и ограничение поиска только в текущим проектом или документом.
Чтобы открыть окно Список ошибок, выберите Вид > Список ошибок или нажмите сочетание клавиш CTRL+ \ +E.
Для сортировки списка выберите любой заголовок столбца. Для повторной сортировки по дополнительному столбцу щелкните другой заголовок столбца, удерживая клавишу SHIFT. Чтобы выбрать отображаемые и скрываемые столбцы, щелкните команду Показать столбцы в контекстном меню. Чтобы изменить порядок, в котором отображаются столбцы, перетащите любой заголовок столбца влево или вправо.
Фильтры списка ошибок
Существует два типа фильтров в двух раскрывающихся списках: один находится справа от панели инструментов, а другой — слева. В раскрывающемся списке слева от панели инструментов указан набор файлов кода (Все решение, Открытые документы, Текущий проект, Текущий документ).
Можно ограничить область поиска для анализа групп ошибок и выполнения соответствующих действий. Например, вам может потребоваться сосредоточиться на основных ошибках, препятствующих компиляции проекта. Для ограничения поиска используются следующие параметры.
В списке справа от панели инструментов указано, следует ли отображать ошибки из сборки (ошибки, возникающие из операции сборки) или из IntelliSense (ошибки, обнаруженные перед запуском сборки) либо и те, и другие.
Поиск
Используйте текстовое поле Поиск в списке ошибок справа от панели инструментов Список ошибок, чтобы найти конкретные ошибки в списке. Поиск можно выполнять на любом отображаемом столбце списка ошибок, и результаты поиска всегда сортируются на основе столбца, имеющего приоритет сортировки, а не на основе примененного запроса или фильтра. Чтобы очистить поисковый запрос и отфильтрованные результаты поиска, нажмите клавишу ESC, выделив область Список ошибок. Можно также щелкнуть X справа от текстового поля, чтобы очистить его.
Сохранить
Список ошибок можно скопировать и сохранить в файл. Выделите ошибки, которые необходимо скопировать, щелкните их правой кнопкой мыши, а затем в контекстном меню выберите команду Копировать. После этого ошибки можно вставить в файл. При вставке ошибок в электронную таблицу Excel поля отображаются в виде различных столбцов.
Список элементов пользовательского интерфейса
Visual Studio включает эффективный интегрированный набор средств сборки и отладки проектов. Из этой статьи вы узнаете, как Visual Studio может помочь обнаружить проблемы в коде с помощью построения выходных данных, анализа кода, средств отладки и модульных тестов.
Мы разобрались, как работать с редактором, и написали код. Теперь необходимо убедиться, что код работает должным образом. Отладка в Visual Studio, как и в большинстве интегрированных сред разработки (IDE), осуществляется в два этапа: построение кода для обнаружения и устранения ошибок проекта и компилятора и выполнение кода для обнаружения ошибок времени выполнения и динамических ошибок.
Сборка кода
Существует два основных типа конфигурации сборки: отладка и выпуск. При использовании конфигурации отладка создается более крупный и медленный исполняемый файл, обеспечивающий более широкие интерактивные возможности отладки во время выполнения. Исполняемый файл конфигурации отладка никогда не следует отправлять. Конфигурация выпуск позволяет создать более быстрый оптимизированный исполняемый файл, подходящий для отправки (по крайней мере с точки зрения компилятора). По умолчанию используется конфигурация Отладка.
Самый простой способ выполнить сборку проекта — нажать клавишу F7, однако вы также можете начать сборку, выбрав в главном меню пункты Сборка > Собрать решение.
Процесс сборки можно наблюдать в окне Вывод в нижней части пользовательского интерфейса Visual Studio. Здесь отображаются ошибки, предупреждения и операции сборки. При наличии ошибок (или предупреждений выше заданного уровня) сборка завершится ошибкой. Можно щелкнуть ошибку и предупреждение, чтобы перейти к строке, где они возникли. Для перестроения проекта можно нажать клавишу F7 (чтобы перекомпилировать только файлы с ошибками) или CTRL+ALT+F7 (для чистого полного перестроения).
После успешного выполнения построения вы увидите примерно следующие результаты в окне Вывод:
Просмотр списка ошибок
Если вы внесли какие-либо изменения в код, который был ранее и успешно скомпилирован, возможно, возникнет ошибка. Если вы новичок в написании кода, возможно, их будет много. Ошибки иногда очевидны, например простая синтаксическая ошибка или неправильное имя переменной, а иногда их причину трудно выяснить, имея в распоряжении только зашифрованный код. Чтобы получить более четкое представление о проблеме, перейдите вниз окна Вывод сборки и щелкните вкладку Список ошибок. При этом вы перейдете к более организованному представлению ошибок и предупреждений для проекта и получите доступ к некоторым дополнительным параметрам.
Щелкните строку ошибки в окне Список ошибок, чтобы перейти в строку кода, в которой возникла ошибка. (Кроме того, номера строк можно включить, нажав клавиши Ctrl+Q, введя номера строк, а затем выбрав Включить или отключить отображение номеров строк в результатах. Это самый быстрый способ перехода в диалоговое окно Параметры, где можно включить номера строк.
Нажмите клавиши CTRL+G для быстрого перехода к номеру строки, в которой возникла ошибка.
Ошибку можно узнать по подчеркиванию красной волнистой линией Чтобы получить дополнительные сведения, наведите на нее указатель мыши. Внесите исправления, и подчеркивание исчезнет, хотя в результате исправления может возникнуть новая ошибка (это называется "регрессия").
Пройдите список ошибок и устраните все ошибки в коде.
Просмотр подробных сведений об ошибках
Многие ошибки трудны для восприятия, будучи представленными в терминах компилятора. В этом случае могут потребоваться дополнительные сведения. Из окна Список ошибок можно выполнить автоматический поиск в поисковой системе Bing для получения дополнительных сведений об ошибке или предупреждении. Щелкните правой кнопкой мыши по соответствующей строке записи и выберите Показать справочные сведения об ошибке из контекстного меню или щелкните гиперссылку с кодом ошибки в столбце код в списке ошибок.
В зависимости от настроек результаты поиска по коду и описанию ошибки откроются в веб-браузере либо во вкладке Visual Studio с результатами поиска Bing. Представленные результаты — из различных источников в Интернете, и, возможно, не все они будут полезными.
Анализ кода
Средства анализа выполняют поиск общих проблем в коде, которые могут привести к ошибкам времени выполнения или проблемам управления кодом.
Анализ кода C++
Чтобы выполнить анализ кода C++, запустите статический анализ кода. Запустить этот компонент после устранения всех очевидных ошибок, препятствующих успешной сборке, и потратить некоторое время, чтобы устранить создаваемые им предупреждения, — очень полезная привычка. Вы сможете избавиться от определенных будущих проблем, а также научитесь некоторым полезным приемам написания кода.
Нажмите клавиши ALT+F11 (или выберите в верхнем меню команду Анализ > Выполнить анализ кода в решении) для запуска статического анализа кода.
Все новые или обновленные предупреждения отображаются на вкладке Список ошибок в нижней части интегрированной среды разработки. Щелкните предупреждение для перехода к нему в коде.
Использование быстрых действий для исправления или рефакторинга кода
Если вы привыкли работать с клавиатурой, вы можете использовать клавиши со стрелками и сочетание клавиш CTRL+ . для проверки возможностей оптимизации и очистки кода!
Запуск очистки кода
Помимо форматирования пробелов, отступов и т. п., функция Очистка кода применяет определенные вами соглашения о стиле кода. Ваши настройки для каждого стиля кода считываются из файла EditorConfig, если такой существует в проекте, или из раздела Параметры стиля кода, который доступен через диалоговое окно Параметры.
Отладка выполняемого кода
Успешно завершив сборку кода и его очистку, запустите код, нажав клавишу F5 или выбрав команду Отладка > Начать отладку. Приложение будет запущено в среде отладки, и вы сможете пронаблюдать его поведение. Интегрированная среда разработки Visual Studio изменяется во время выполнения приложения: окно Вывод заменяется двумя новыми окнами (в конфигурации окон по умолчанию): окном с вкладками Видимые/Локальные/Контрольные значения и окном с вкладками Стек вызовов/Точки останова/Параметры исключений/Вывод. Эти окна имеют несколько вкладок, которые позволяют просмотреть и проверить переменные, потоки, стеки вызовов приложения и другие характеристики поведения во время выполнения приложения.
Остановите приложение, нажав клавиши SHIFT+F5 или кнопку Остановить. Кроме того, можно просто закрыть главное окно приложения (или диалоговое окно командной строки).
Задание простых точек останова
Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода. После установки или удаления точек останова перестраивать проект не нужно.
Установите точку останова, щелкнув дальнее поле строки, в которой требуется приостановить выполнение, или нажмите клавишу F9, чтобы установить точку останова в текущей строке кода. Выполнение кода прерывается (останавливается) перед инструкциями для этой строки кода.
Чаще всего точки останова используются для решения следующих задач.
Чтобы точнее определить источник аварийного завершения или отсутствия отклика программы, расставьте точки останова вокруг и непосредственно в коде вызова метода, который, по вашему мнению, приводит к сбою. При выполнении кода в отладчике удаляйте, а затем снова устанавливайте точки останова ближе друг к другу, пока не найдете строку кода, вызывающую ошибку. Выполнение кода в отладчике описывается в следующем разделе.
При добавлении нового кода установите точку останова в его начале и выполните код, чтобы убедиться в том, что он работает правильно.
При реализации сложного поведения задайте точки останова для алгоритмического кода, чтобы можно было проверить значения переменных и данные при прерывании программы.
При написании кода C или C++ используйте точки останова для остановки кода, чтобы можно было проверить значения адреса (ищите значение NULL) и просмотреть значения счетчиков при отладке ошибок, связанных с памятью.
Дополнительные сведения о точках останова см. в статье Использование точек останова.
Проверка кода во время выполнения
Когда выполнение кода приостанавливается из-за достижения точки останова, строка кода, помеченная желтым цветом (текущий оператор), еще не выполнена. Вы можете выполнить текущий оператор и проверить, как изменились значения. Для выполнения кода в отладчике можно использовать ряд команд пошагового выполнения. Если отмеченный код является вызовом метода, вы можете выполнить шаг с заходом, нажав клавишу F11. Кроме того, можно выполнить шаг с обходом строки кода, нажав клавишу F10. Дополнительные команды и подробные сведения о пошаговом выполнении кода см. в статье Навигация по коду с помощью отладчика.
Код, представленный на предыдущей иллюстрации, может выполняться отладчиком по одному оператору. Для этого можно нажимать клавишу F10 или F11 (так как здесь нет вызова метода, результат выполнения обеих команд будет одинаковым).
Когда отладчик приостанавливает выполнение, можно проверить переменные и стеки вызовов, чтобы разобраться в происходящем. Находятся ли значения в тех диапазонах, которые вы ожидали увидеть? Выполняются ли вызовы в правильном порядке?
Наведите курсор на переменную для просмотра ее текущего значения и ссылок. Если отображается значение, которое вы не ожидали увидеть, возможно, в предыдущем или вызывающем коде имеется ошибка. Более подробные сведения об отладке см. в статье об использовании отладчика.
Кроме того, Visual Studio выводит на экран окно средств диагностики, где можно наблюдать за загрузкой ЦП и использованием памяти приложением в динамике по времени. В дальнейшем в процессе разработки приложения эти средства можно применять для выявления случаев непредвиденно высокой загрузки ЦП или чрезмерного выделения памяти. Это окно можно использовать в сочетании с окном Контрольные значения и точками останова, чтобы определить причину непредвиденно интенсивного использования или неосвобожденных ресурсов. Дополнительные сведения см. в статье Обзор возможностей профилирования.
Запуск модульных тестов
Модульные тесты — это первая линия защиты от ошибок в коде, так как при правильном проведении они позволяют проверять отдельные "модули" кода (как правило, это отдельные функции), которые проще отлаживать, чем всю программу. Visual Studio устанавливает платформу модульного тестирования Майкрософт для управляемого и машинного кода. Платформа модульного тестирования используется для создания модульных тестов, их запуска и передачи результатов таких тестов. Завершив внесение изменений, запустите модульные тесты повторно, чтобы убедиться, что код по-прежнему работает правильно. При использовании выпуска Visual Studio Enterprise можно настроить автоматический запуск тестов после каждой сборки.
Чтобы приступить к работе с модульными тестами, ознакомьтесь со статьей Создание модульных тестов для кода с помощью IntelliTest.
Дополнительные сведения о модульных тестах в Visual Studio, а также о том, как они могут помочь в создании более качественного кода, см. в статье Основные сведения о модульных тестах.
Visual Studio включает эффективный интегрированный набор средств сборки и отладки проектов. Из этой статьи вы узнаете, как Visual Studio может помочь обнаружить проблемы в коде с помощью построения выходных данных, анализа кода, средств отладки и модульных тестов.
Мы разобрались, как работать с редактором, и написали код. Теперь необходимо убедиться, что код работает должным образом. Отладка в Visual Studio, как и в большинстве интегрированных сред разработки (IDE), осуществляется в два этапа: построение кода для обнаружения и устранения ошибок проекта и компилятора и выполнение кода для обнаружения ошибок времени выполнения и динамических ошибок.
Сборка кода
Существует два основных типа конфигурации сборки: отладка и выпуск. При использовании конфигурации отладка создается более крупный и медленный исполняемый файл, обеспечивающий более широкие интерактивные возможности отладки во время выполнения. Исполняемый файл конфигурации отладка никогда не следует отправлять. Конфигурация выпуск позволяет создать более быстрый оптимизированный исполняемый файл, подходящий для отправки (по крайней мере с точки зрения компилятора). По умолчанию используется конфигурация Отладка.
Самый простой способ выполнить сборку проекта — нажать клавишу F7, однако вы также можете начать сборку, выбрав в главном меню пункты Сборка > Собрать решение.
Процесс сборки можно наблюдать в окне Вывод в нижней части пользовательского интерфейса Visual Studio. Здесь отображаются ошибки, предупреждения и операции сборки. При наличии ошибок (или предупреждений выше заданного уровня) сборка завершится ошибкой. Можно щелкнуть ошибку и предупреждение, чтобы перейти к строке, где они возникли. Для перестроения проекта можно нажать клавишу F7 (чтобы перекомпилировать только файлы с ошибками) или CTRL+ALT+F7 (для чистого полного перестроения).
После успешного выполнения построения вы увидите примерно следующие результаты в окне Вывод:
Просмотр списка ошибок
Если вы внесли какие-либо изменения в код, который был ранее и успешно скомпилирован, возможно, возникнет ошибка. Если вы новичок в написании кода, возможно, их будет много. Ошибки иногда очевидны, например простая синтаксическая ошибка или неправильное имя переменной, а иногда их причину трудно выяснить, имея в распоряжении только зашифрованный код. Чтобы получить более четкое представление о проблеме, перейдите вниз окна Вывод сборки и щелкните вкладку Список ошибок. При этом вы перейдете к более организованному представлению ошибок и предупреждений для проекта и получите доступ к некоторым дополнительным параметрам.
Щелкните строку ошибки в окне Список ошибок, чтобы перейти в строку кода, в которой возникла ошибка. (Кроме того, номера строк можно включить, нажав клавиши Ctrl+Q, введя номера строк, а затем выбрав Включить или отключить отображение номеров строк в результатах. Это самый быстрый способ перехода в диалоговое окно Параметры, где можно включить номера строк.
Нажмите клавиши CTRL+G для быстрого перехода к номеру строки, в которой возникла ошибка.
Ошибку можно узнать по подчеркиванию красной волнистой линией Чтобы получить дополнительные сведения, наведите на нее указатель мыши. Внесите исправления, и подчеркивание исчезнет, хотя в результате исправления может возникнуть новая ошибка (это называется "регрессия").
Пройдите список ошибок и устраните все ошибки в коде.
Просмотр подробных сведений об ошибках
Многие ошибки трудны для восприятия, будучи представленными в терминах компилятора. В этом случае могут потребоваться дополнительные сведения. Из окна Список ошибок можно выполнить автоматический поиск в поисковой системе Bing для получения дополнительных сведений об ошибке или предупреждении. Щелкните правой кнопкой мыши по соответствующей строке записи и выберите Показать справочные сведения об ошибке из контекстного меню или щелкните гиперссылку с кодом ошибки в столбце код в списке ошибок.
В зависимости от настроек результаты поиска по коду и описанию ошибки откроются в веб-браузере либо во вкладке Visual Studio с результатами поиска Bing. Представленные результаты — из различных источников в Интернете, и, возможно, не все они будут полезными.
Анализ кода
Средства анализа выполняют поиск общих проблем в коде, которые могут привести к ошибкам времени выполнения или проблемам управления кодом.
Анализ кода C++
Чтобы выполнить анализ кода C++, запустите статический анализ кода. Запустить этот компонент после устранения всех очевидных ошибок, препятствующих успешной сборке, и потратить некоторое время, чтобы устранить создаваемые им предупреждения, — очень полезная привычка. Вы сможете избавиться от определенных будущих проблем, а также научитесь некоторым полезным приемам написания кода.
Нажмите клавиши ALT+F11 (или выберите в верхнем меню команду Анализ > Выполнить анализ кода в решении) для запуска статического анализа кода.
Все новые или обновленные предупреждения отображаются на вкладке Список ошибок в нижней части интегрированной среды разработки. Щелкните предупреждение для перехода к нему в коде.
Использование быстрых действий для исправления или рефакторинга кода
Если вы привыкли работать с клавиатурой, вы можете использовать клавиши со стрелками и сочетание клавиш CTRL+ . для проверки возможностей оптимизации и очистки кода!
Запуск очистки кода
Помимо форматирования пробелов, отступов и т. п., функция Очистка кода применяет определенные вами соглашения о стиле кода. Ваши настройки для каждого стиля кода считываются из файла EditorConfig, если такой существует в проекте, или из раздела Параметры стиля кода, который доступен через диалоговое окно Параметры.
Отладка выполняемого кода
Успешно завершив сборку кода и его очистку, запустите код, нажав клавишу F5 или выбрав команду Отладка > Начать отладку. Приложение будет запущено в среде отладки, и вы сможете пронаблюдать его поведение. Интегрированная среда разработки Visual Studio изменяется во время выполнения приложения: окно Вывод заменяется двумя новыми окнами (в конфигурации окон по умолчанию): окном с вкладками Видимые/Локальные/Контрольные значения и окном с вкладками Стек вызовов/Точки останова/Параметры исключений/Вывод. Эти окна имеют несколько вкладок, которые позволяют просмотреть и проверить переменные, потоки, стеки вызовов приложения и другие характеристики поведения во время выполнения приложения.
Остановите приложение, нажав клавиши SHIFT+F5 или кнопку Остановить. Кроме того, можно просто закрыть главное окно приложения (или диалоговое окно командной строки).
Задание простых точек останова
Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода. После установки или удаления точек останова перестраивать проект не нужно.
Установите точку останова, щелкнув дальнее поле строки, в которой требуется приостановить выполнение, или нажмите клавишу F9, чтобы установить точку останова в текущей строке кода. Выполнение кода прерывается (останавливается) перед инструкциями для этой строки кода.
Чаще всего точки останова используются для решения следующих задач.
Чтобы точнее определить источник аварийного завершения или отсутствия отклика программы, расставьте точки останова вокруг и непосредственно в коде вызова метода, который, по вашему мнению, приводит к сбою. При выполнении кода в отладчике удаляйте, а затем снова устанавливайте точки останова ближе друг к другу, пока не найдете строку кода, вызывающую ошибку. Выполнение кода в отладчике описывается в следующем разделе.
При добавлении нового кода установите точку останова в его начале и выполните код, чтобы убедиться в том, что он работает правильно.
При реализации сложного поведения задайте точки останова для алгоритмического кода, чтобы можно было проверить значения переменных и данные при прерывании программы.
При написании кода C или C++ используйте точки останова для остановки кода, чтобы можно было проверить значения адреса (ищите значение NULL) и просмотреть значения счетчиков при отладке ошибок, связанных с памятью.
Дополнительные сведения о точках останова см. в статье Использование точек останова.
Проверка кода во время выполнения
Когда выполнение кода приостанавливается из-за достижения точки останова, строка кода, помеченная желтым цветом (текущий оператор), еще не выполнена. Вы можете выполнить текущий оператор и проверить, как изменились значения. Для выполнения кода в отладчике можно использовать ряд команд пошагового выполнения. Если отмеченный код является вызовом метода, вы можете выполнить шаг с заходом, нажав клавишу F11. Кроме того, можно выполнить шаг с обходом строки кода, нажав клавишу F10. Дополнительные команды и подробные сведения о пошаговом выполнении кода см. в статье Навигация по коду с помощью отладчика.
Код, представленный на предыдущей иллюстрации, может выполняться отладчиком по одному оператору. Для этого можно нажимать клавишу F10 или F11 (так как здесь нет вызова метода, результат выполнения обеих команд будет одинаковым).
Когда отладчик приостанавливает выполнение, можно проверить переменные и стеки вызовов, чтобы разобраться в происходящем. Находятся ли значения в тех диапазонах, которые вы ожидали увидеть? Выполняются ли вызовы в правильном порядке?
Наведите курсор на переменную для просмотра ее текущего значения и ссылок. Если отображается значение, которое вы не ожидали увидеть, возможно, в предыдущем или вызывающем коде имеется ошибка. Более подробные сведения об отладке см. в статье об использовании отладчика.
Кроме того, Visual Studio выводит на экран окно средств диагностики, где можно наблюдать за загрузкой ЦП и использованием памяти приложением в динамике по времени. В дальнейшем в процессе разработки приложения эти средства можно применять для выявления случаев непредвиденно высокой загрузки ЦП или чрезмерного выделения памяти. Это окно можно использовать в сочетании с окном Контрольные значения и точками останова, чтобы определить причину непредвиденно интенсивного использования или неосвобожденных ресурсов. Дополнительные сведения см. в статье Обзор возможностей профилирования.
Запуск модульных тестов
Модульные тесты — это первая линия защиты от ошибок в коде, так как при правильном проведении они позволяют проверять отдельные "модули" кода (как правило, это отдельные функции), которые проще отлаживать, чем всю программу. Visual Studio устанавливает платформу модульного тестирования Майкрософт для управляемого и машинного кода. Платформа модульного тестирования используется для создания модульных тестов, их запуска и передачи результатов таких тестов. Завершив внесение изменений, запустите модульные тесты повторно, чтобы убедиться, что код по-прежнему работает правильно. При использовании выпуска Visual Studio Enterprise можно настроить автоматический запуск тестов после каждой сборки.
Чтобы приступить к работе с модульными тестами, ознакомьтесь со статьей Создание модульных тестов для кода с помощью IntelliTest.
Дополнительные сведения о модульных тестах в Visual Studio, а также о том, как они могут помочь в создании более качественного кода, см. в статье Основные сведения о модульных тестах.
Я попытался очистить / перестроить решение, закрыть Visual Studio и даже перезагрузить компьютер. Я также сделал шаги, описанные в отладочных запусках, даже с ошибками компилятора в Visual Studio. Я могу изменить .cs-файлы, и я вижу изменения в решение.
есть ли у кого-нибудь идея о том, почему он это делает?
Вариант 1: Очистить, построить и обновить (@Mike Fuchs)
As @Mike Fuchs упомянуто, попробуйте следующие операции:
в меню Build > Clean Solution
затем построить его:
в меню Build > Build Solution
и, наконец, Обновить:
Вариант 2: Очистить, закрыть, перезапустить и построить ( @ Pixel)
As @ Pixel упомянуто, попробуйте следующую последовательность операций:
- очистить решение
- Закрыть Visual Studio
- Открыть Visual Studio
- построить решение
Вариант 3: Очистить кэш ReSharper (мой оригинальный вариант)
Если у вас есть ReSharper, попробуйте очистить кэш ReSharper:
в меню ReSharper > параметры > окружающая среда > общие > очистить кэш
и отключение и повторное включение ReSharper:
в меню Инструменты > Параметры > ReSharper > общие > приостановить / восстановить
Вариант 4: Удалить .файл СУО (@Neolisk)
As @Neolisk упоминалось, удаляя .файл suo может решить вашу проблему. Для Visual Studio 2015 файл находится в:
и для Visual Studio 2017:
обратите внимание, что .vs каталог скрыт.
Вариант 5: выгрузка и перезагрузка проекта ( @TTT)
As @TTT упомянуто, попробуйте разгрузить проект, который вызывает проблемы:
в обозревателе решений щелкните правой кнопкой мыши проект, выгрузите проект.
и перезагрузить его
в обозревателе решений щелкните правой кнопкой мыши проект, перезагрузите проект.
Вариант 6: выгрузка и перезагрузка проекта ( @Guilherme)
As @Guilherme упомянул, попробуйте удалить и добавить ссылка на "Microsoft.CSharp " из проектов, которые имеют проблемы.
в обозревателе решений разверните проект, разверните "ссылки", щелкните правой кнопкой мыши на " Microsoft.CSharp" и "удалить".
затем щелкните правой кнопкой мыши ссылки > добавить ссылку, выберите " Microsoft.CSharp " из списка и нажмите OK
Очистка кэша Resharper не помогло в моем случае, пробовал приостановить/восстановить, а также ремонт Resharper, используя последнюю загрузку с веб - сайта JetBrains-ни один из них не помог. Это после того, как я попытался закрыть/снова открыть VS, перезагрузить машину, повторить, построить/перестроить и их комбинацию.
интересно, что приостановка Resharper, казалось, решить проблему после 2-й перезапуск VS, но он вернулся после того, как я включил Resharper
во всяком случае, у меня все еще были проблемы, когда я нашел эту статью:
поэтому я удалил скрытые .СУО файл на том же уровне папки с решением, и он волшебным образом решил все красные.
я очистил решение, закрыл VS, снова открыл его, построил решение и красные неразрешенные линии были очищены и успешно построены.
tldr; выгрузить и перезагрузить проблемный проект.
когда это происходит со мной, я (раньше) пытаюсь закрыть VS и снова открыть его. Это, вероятно, работало около половины времени. Когда это не сработало, я бы закрыл решение, удалил его .suo файл (или всю .vs folder) и повторно откройте решение. До сих пор это всегда работало для меня (более 10 раз за последние 6 месяцев), но это немного утомительно, потому что некоторые вещи сбрасываются, такие как ваш режим сборки, запуск проекта и т. д.
поскольку обычно проблема возникает только в одном проекте, я просто попытался выгрузить этот проект и перезагрузить его, и это сработало. Мой размер выборки составляет всего 1, но он намного быстрее, чем два других варианта, поэтому, возможно, стоит попробовать. Я подозреваю, что это работает, потому что он пишет.suo файл, и, возможно, исправляет поврежденную часть его, которая вызывала проблему с самого начала.
Примечание: я использую Visual Studio 2015.
Я обнаружил, что это часто происходит при использовании Git в Visual Studio 2017, переключение ветвей, где есть зависимые изменения кода. Несмотря на то, что проект будет успешно построен, в списке ошибок останутся ошибки.
эти ошибки часто являются проблемами пространства имен и отсутствующими ссылками, даже если ссылка на библиотеку существует.
- Закрыть Visual Studio
- удалить .против\ "призма".\IncomeVerification программы V15.СУО файл (скрытый)
- Перезапустите Visual Studio
у меня была такая проблема, когда Intellisense, похоже, не распознал существование одного проекта (много "не могу найти этот тип", "это пространство имен не существует" и т. д. ошибки.)
удаление и повторное добавление ссылки на проект во всех ссылочных проектах устранит проблему, но основная причина может быть исправлена путем редактирования .proj файл проблемного проекта.
в верхней части проекта "отсутствует".файл csproj является элемент:
и во всех ссылочных проектах .файлы csproj были ссылками на проект:
идентификатор GUID ссылки не соответствует идентификатору GUID проекта. Замена выше Исправлена проблема без необходимости проходить через каждый проект привязки.
возможно, вы пытаетесь сбросить кэш intellisense. У меня была аналогичная проблема в visual studio 2012 при работе в большом проекте со многими частичными определениями классов. Уменьшение частичных значений частично решило проблему, очистка кэша intellisense также-на некоторое время.
иногда мне приходится выполнять пользовательскую очистку, просматривая все проекты и вручную удаляя папки "bin" и "obj". Чтобы увидеть их в Visual Studio, необходимо включить скрытые файлы и папки для каждого проекта. После этого перестройте решение.
для моего конкретного случая это была служебная ссылка другого разработчика, объединенная с основной веткой. Что было прекрасно, за исключением того, что подсветка синтаксиса не смогла разрешить сгенерированный класс обслуживания,а источник был подчеркнут красным. Очистка, восстановление, перезапуск ничего не сделали.
все, что мне нужно было сделать, это обновить ссылку на службу, и VS удалось собрать части вместе за кулисами. Нет изменений в исходном коде или сгенерированных файлах.
Я только что столкнулся с этой проблемой после возврата git commit, который добавил файлы обратно в мой проект.
очистка и восстановление проекта не сработали, даже если я закрыл VS между каждым шагом.
что в конечном итоге сработало, это переименование файла во что-то другое и изменение его обратно. : facepalm:
попробовав все перечисленные опции, я обнаружил еще одну причину, по которой это может произойти. Если кто-то отправил вам исходный код в виде zip или вы загрузили zip, Windows может заблокировать все файлы. 2 способа решить эту проблему:
Способ 1:
щелкните правой кнопкой мыши исходный Zip-файл - > Проверьте "разблокировать" - > нажмите apply
Способ 2:
Если это не вариант, а не открытие свойств для каждого файла в в папке решения просто откройте power shell и разблокируйте рекурсивно, используя следующее:
Читайте также: