У меня проблемы с Visual Studio, поэтому я создал максимально простую программу. Я создал консольное приложение, которое должно отображать на консоли одну строку, а затем ждать, пока пользователь нажмет клавишу. Вместо этого мне выдается сообщение об ошибке.
Я посмотрел сообщение об ошибке, и оно обсуждает неверный дескриптор. Я не уверен, какая ручка может быть недействительной. Код не является каким-либо сложным (и работал бы без проблем в любой другой день, когда я использовал Visual Studio). Я понятия не имею, что могло вызвать эту проблему. Я не пользовался Visual Studio около двух с половиной недель, но я до сих пор не могу понять, что могло случиться с ним за это время.
Вот снимок экрана с сообщением об ошибке:
Я был на веб-сайтах справки и поддержки Microsoft (хотя я не нашел ни одного веб-сайта, специально названного «Справка и поддержка», но нашел MSDN и различные форумы). Я посмотрел на этот HRESULT. В каждой прочитанной статье обсуждается какая-то ошибка веб-приложения. Мне еще не приходилось сталкиваться с единственной статьей, в которой упоминалось бы, что это происходит в консольном приложении, поэтому я так зашел в тупик. Мой следующий шаг - попытаться восстановить мою установку .NET Framework, чтобы увидеть, если это что-то делает (я нашел несколько косвенных ссылок, говорящих, что это может помочь). Если у кого-то есть идеи, я очень заинтересован!
Кроме того, я попробовал этот же код в Visual Studio 2013. Он отлично работает с этой IDE. Это происходит только с Visual Studio 2017 (с которой у меня не было ничего, кроме проблем с момента его установки, удаления и переустановки). Но моя копия VS 2013 является выпуском для сообщества, и моя работа только что приобрела для меня Профессиональную лицензию на 2017 год, поэтому я предпочел бы использовать ее, если смогу заставить ее работать. Это довольно расстраивает в этот момент. Если я не могу найти какой-либо другой ответ, мой следующий вариант - удалить его и заново установить. Это будет в пятый или шестой раз, когда мне нужно это сделать, поэтому я надеюсь на другое решение.
Edit:
Проведя дополнительные исследования, я обнаружил, что это проблема только при отладке кода. Если я запускаю код через Visual Studio с помощью параметра «Начать без отладки», он запускается без проблем. И поскольку я могу без проблем использовать VS 2013 на той же машине в режиме отладки, это, похоже, исключает проблему с Windows. Возможно, проблема ограничена VS 2017.
У меня есть планы по удалению и переустановке VS 2017, но это длительный процесс. Поэтому, прежде чем я это сделаю, я все еще ищу другие возможные решения.
UPDATE:
Я нашел отчет о сбое в Event Viewer. Вот журнал:
Ковш неисправности 2243818120991372909, тип 1
Название события: APPCRASH
Ответ: не доступно
Идентификатор кабины: 0
Подпись проблемы:
P1: HelloWorldTest3.exe
P2: 1.0.0.0
P3: cc00d718
P4: StackHash_cad8
P5: 0.0.0.0
P6: 00000000
P7: c0000008
P8: PCH_E2_FROM_ntdll + 0x0006A2DC
P9:
P10:
Прикрепленные файлы:
? \ \ C: \ ProgramData \ Microsoft \ Windows \ WER \ Temp \ WERB1A6.tmp.dmp
? \ \ C: \ ProgramData \ Microsoft \ Windows \ WER \ Temp \ WERB427.tmp.WERInternalMetadata.xml
? \ \ C: \ ProgramData \ Microsoft \ Windows \ WER \ Temp \ WERB486.tmp.xml
? \ \ C: \ ProgramData \ Microsoft \ Windows \ WER \ Temp \ WERB494.tmp.csv
? \ \ C: \ ProgramData \ Microsoft \ Windows \ WER \ Temp \ WERB4D3.tmp.txt
Эти файлы могут быть доступны здесь:
C: \ ProgramData \ Microsoft \ Windows \ WER \ ReportArchive \ AppCrash_HelloWorldTest3._40a823464c1b7f1a36d57ccec8a525baac94eb58_92da583c_48deb87c
Символ анализа:
Перепроверка для решения: 0
Идентификатор отчета: a085ff02-7bff-4a22-8d90-3f52094b2f8f
Статус отчета: 268435456
Хешированное ведро: 334244e30a9d2a234f23a4b15a46766d
Кабина Guid: 0
Говорит ли это о том, почему он разбился? У меня также есть список DLL-файлов, которые были загружены в то время, но я не вижу ничего конкретного, что могло бы привести к сбою.
ОБНОВЛЕНИЕ № 2:
Я попытался перезагрузиться в безопасном режиме.Это решило проблему.Итак, я попытался перезапустить службы один за другим, чтобы найти тот, который вызывал сбой отладчика.Но Windows не позволяет мне запускать какие-либо дополнительные службы в безопасном режиме.Итак, я решил попробовать в обратном направлении.Я перезагрузился в обычном режиме и начал отключать службы один за другим.В конце концов, у меня были все службы, которые Windows позволяла мне отключать, но проблема все еще возникала.Это все больше и больше похоже на то, что Центр обновления Windows что-то сломал.
ОБНОВЛЕНИЕ № 3: Мы активировали наш Договор технической поддержки Microsoft.Инженер поддержки, которого они назначили, заставил меня отправить дампы памяти и результаты работы Procmon во время события APPCRASH.После того, как я отправил информацию, я еще не получил ответа и до сих пор не знаю, что может пойти не так.Последние два дня инженер игнорировал мои электронные письма (пятницу на прошлой неделе и понедельник на этой неделе).Так что я даже не могу получить информацию о прогрессе.Это чрезвычайно неприятная проблема для устранения неполадок, поскольку она не генерирует легко обнаруживаемые сообщения об ошибках.Я буду продолжать обновлять, как я узнаю больше.Спасибо всем, кто пытался помочь.
ОБНОВЛЕНИЕ № 4: Microsoft проверила файлы дампа и результаты Procmon.Они обнаружили, что ошибка в CLR (что странно, потому что VS 2013 может отлаживать без проблем ...) Это определенно в следующем методе dll: win32u! NtUserMsgWaitForMultipleObjectsEx
Microsoft говорит, что дамп не содержалдетали этого вопроса, и они будут продолжать работать над этим вопросом.Тем временем я удалил Trend Micro, перезагрузил компьютер, удалил VS 2017, перезагрузил компьютер, заново установил VS 2017, перезагрузил компьютер, и отладчик VS 2017 по-прежнему не работает.Я также ремонтировал каждую версию .NET Framework на случай, если какая-либо из них была повреждена, перезапущена снова, на случай, если я не перезагрузился достаточно, и все равно не повезло.Единственное, что сработало, это загрузка компьютера в безопасном режиме.