Ошибка Visual Studio 2010 при загрузке решения

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

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

  • Отключение всех надстроек и макросов для инструментов → options → add-in/Macros Security, а затем снятие отметки с двух соответствующих флажков

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

  • Перезагрузка моей машины

  • Выполнение 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\VС#\VCSPackages\cslangsvc.dll Идентификатор отчета: cd32c352-49ca-11e0-b3d8-0026b9c2aa7e

ИЗМЕНИТЬ

Это решение с двумя проектами → проект форм выигрышей и консольный проект. И в С#

Решение

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

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

namespace System {
    public partial class Boolean { }
}

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

Ответ 1

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

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

Ответ 2

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

  • devenv.exe/resetsettings, devenv.exe/resetsippkgs (не работает)

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

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

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

  • "Переустановлен" VS2010 с использованием опции "восстановить/переустановить" (не работает)

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

Ответ 3

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

Ответ 4

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

Линия, о которой идет речь, была:

getCommonResourcesDirectory([out, retval] BSTR* );

Ответ 5

В Visual Studio 2010 может произойти сбой во время загрузки решения, если/когда инструменты тестирования (окно Test View и т.д.) загружают DLL, которая генерирует исключение во время инициализации.

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

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

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

Ответ 6

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

Ответ 7

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

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

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