Сбой Visual Studio 2010 при загрузке решения - PullRequest
10 голосов
/ 09 марта 2011

Я видел много похожих вопросов, но я не думаю, что я дублирую.Вот моя ситуация.У меня есть три решения, с которыми я работаю.A работает нормально, но когда я пытаюсь загрузить B или C, VS 2010 аварийно завершает работу сразу после загрузки решения, особенно после того, как я пытаюсь открыть файл из обозревателя решений.

Что я пробовал:

  1. Отключение всех надстроек и макросов с помощью инструментов -> Параметры -> Надстройка / Безопасность макросов, затем снятие двух соответствующих флажков

  2. Удалениемой файл .suo.

  3. Перезагрузка моего компьютера

  4. Запуск VS 2010 в качестве администратора

Вотошибка из моего средства просмотра событий

Неправильное имя приложения: devenv.exe, версия: 10.0.30319.1, отметка времени: 0x4ba1fab3 Неисправное имя модуля: cslangsvc.dll, версия: 10.0.30319.1, отметка времени:0x4ba20c61 Код исключения: 0xc0000005 Смещение ошибки: 0x0024b651 Идентификатор ошибочного процесса: 0x1408 Время запуска ошибочного приложения: 0x01cbddd78972584a Путь ошибочного приложения: c: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe Путь ошибочного модуля: c:\ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC # \ VCSPackages \ cslangsvc.dll Идентификатор отчета: cd32c352-49ca-11e0-b3d8-0026b9c2aa7e

EDIT

Это решение с двумя проектами -> проектом win forms и консольным проектом.Оба в C #

РАЗРЕШЕНИЕ

Оказывается, в моем решении был какой-то глупый (глупый?) Код, который заставлял VS сходить с ума.Код никогда не должен был быть там;это было просто то, что я написал, играя без всякой на то причины.

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

namespace System {
    public partial class Boolean { }
}

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

Ответы [ 7 ]

14 голосов
/ 09 марта 2011

Попробуйте отключить все расширения через инструменты -> менеджер расширений. У меня были расширения сбоев Visual Studio только в определенных проектах.

Или попробуйте запустить VS в безопасном режиме: devenv.exe / SafeMode

5 голосов
/ 15 февраля 2012

В указанном порядке я пробовал следующее:

  1. devenv.exe / resetsettings, devenv.exe / resetskippkgs (не работает)

  2. devenv.exe / safemode (сказал, что версия продукта не может открывать типы .ccproj. Но никакое решение не работает)

  3. переименовал файлы .user, .suo (не работал)

  4. Установлены все пакеты обновления для VS2010, даже если они были связаны с разработкой на C #.

  5. «Переустановлено» VS2010 с использованием опции «восстановить / переустановить» (не работает)

  6. Деинсталлировали VS2010, а затем устанавливали (это было мое решение, хотя многие из них пробовали это и не смогли. Возможно, потому что это было мое последнее средство.)

2 голосов
/ 20 сентября 2011

Я столкнулся с подобной проблемой, VS2010 завис при загрузке определенного решения.В коде оказалась неполная строка, из-за которой VS2010 не работал.Когда я закомментировал строку, все было в порядке.

Рассматриваемая строка была:

getCommonResourcesDirectory([out, retval] BSTR* );
2 голосов
/ 09 марта 2011

Если это проект C ++, попробуйте удалить все файлы PDB, которые висят вокруг - они иногда повреждаются и вызывают сбои.

1 голос
/ 29 августа 2013

Сбой также может произойти в Visual Studio 2010 во время загрузки решения, если / когда инструменты тестирования (окно «Просмотр теста» и т. Д.) Загружают DLL, которая выдает исключение во время инициализации.

Мой конкретный случай был C ++Тестовый проект / CLI, в котором глобальная переменная выдавала исключение при ее создании, причем этот конструктор вызывался во время DLL INIT.(Это был конструктор класса std :: tr1 :: regex из-за неверной строки шаблона, переданной ему.)

Это была довольно тонкая проблема, потому что вы не ожидаете, что ваш код будет работать, пока вы не выполнитетестовое задание;но в случае ctors глобальных переменных C ++ он запускается IDE сразу после сборки и при загрузке решения.

Я подозреваю, что компонент диспетчера тестов Visual Studio 2010 не переносит вызов загрузки Dll в try /поймать блок там, где это возможно.

0 голосов
/ 03 марта 2015

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

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

Мне удалось открыть проект после удаления файла * .suo. Затем в Solution Explorer я щелкнул правой кнопкой мыши файл кода и выбрал «Открыть с помощью». В диалоговом окне я изменил настройки по умолчанию, и все было в порядке, включая просмотр оборудования, которого я раньше не обнаруживал.

0 голосов
/ 01 сентября 2014

Установите форму, которая дает сбой Visual Studio в качестве основной формы для загрузки. Затем запустите форму в режиме отладки из меню DEBUG.

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