VS 2015 Update 1 - утверждаю, что отлаживаю сборку релиза

97

После обновления до VS 2015 update 1, если я запускаю веб-проект (MVC), останавливаю приложение, а затем пытаюсь запустить его снова, VS останавливается и выдает диалоговое окно с заявлением

Вы отлаживаете сборку Release <myproject.dll>.

Использование Just My Code с выпускными сборками с использованием оптимизаций компилятора приводит к ухудшению качества отладки (например, точки останова не срабатывают).

Проблема в том, что я не запускаю сборку релиза. Я явно использую (ту же) отладочную сборку, которую только что запускал! Почему VS думает, что я использую сборку релиза?

Очистка раствора и повторный запуск очищают сообщение об ошибке, поэтому что-то куда-то залито.

Джон Т
источник
1
Хотелось бы услышать, исправили ли вы это. Я столкнулся с той же проблемой после установки обновления 1. Очистка / повторный запуск временно помогает мне справиться, но в следующий раз это произойдет снова.
Джерад Роуз
1
К сожалению, нет. Я общаюсь со службой поддержки Microsoft, которая занимается решением проблемы.
Джон Т.
2
Как бы то ни было, служба поддержки Microsoft воспроизвела проблему и расследует ее. Как только услышу, доложу / отвечу.
Джон Т.
@JohnT Еще не повезло?
Ник
@Nick Вообще-то нет. Я отвечу на свой контакт, чтобы узнать, есть ли обновления.
John T

Ответы:

58

Microsoft сообщает, что это известная проблема (изначально она передавалась группе отладчика, но было определено, что это проблема сборки, и теперь она находится в руках группы разработчиков системы Project. Есть другие открытые ошибки по этой проблеме, и это имеет приоритет 1, поэтому должно быть на пути к следующему обновлению.Хотя, как и следовало ожидать, нельзя давать никаких обещаний относительно того, когда оно будет выпущено (или что на самом деле содержится в обновлении).

Так. Это известно и над этим работают. По крайней мере, отключение «Включить только мой код» в общих параметрах отладки на данный момент кажется проблемой.

Джон Т
источник
13
Все еще получаю это в VS2017, но только для одной DLL. Есть обновления?
JMK
1
Есть ли какой-нибудь URL-адрес, например, в UserVoice, который отслеживает эту проблему?
UuDdLrLrSs 02
Используем ту же работу для VS 2017. Странно, что это еще не исправлено. В любом случае спасибо за работу.
Naveen Kumar V
6
Все еще получаю это в VS2019.
philu
46

Как упомянул @romanoza, Microsoft обновила (теперь отсутствующий) отчет об ошибке Microsoft Connect (ранее находившийся здесь , на случай если вы можете где-то найти архив) со следующей информацией:

Снимите флажок с параметра Отладка -> Параметры -> Подавить оптимизацию JIT при загрузке модуля (только управляемый)

Это обходной путь. Позже они говорят:

Мы рекомендуем людям не устанавливать его, так как снятие флажка улучшит как производительность, так и поведение только моего кода в определенных сценариях.

Наконец, признание:

Ошибка заключается в том, что он не работает с включенным этим параметром, и мы работаем над исправлением этой ситуации на тот случай, если некоторые клиенты по-прежнему захотят отладить этот параметр.

Обновление : На основе комментариев, кажется , что коробка теперь ип установлена по умолчанию для некоторых разработчиков, и проверку его можно зафиксировать точно такую же проблему в некоторых случаях. Очень странно.

Нейт Кук
источник
39
В моей ситуации мне действительно пришлось сделать прямо противоположное. Мне пришлось установить флажок для упомянутого выше параметра. Все это очень странно.
dyslexicanaboko
2
То же, что и dyslexicanaboko - я поставил галочку, чтобы удалить сообщение.
Джей Камминс,
5
Та же проблема с апрельским выпуском Visual Studio 2017, нужно было поставить галочку
Рафаэль,
1
Я голосую не потому, что ответ сработал, а потому, что первый комментарий к ответу сработал! И это заслуживает внимания. (Также обратите внимание, что внешняя ссылка не работает. Вы попадете на страницу «Microsoft Connect больше не работает».)
Разочарованный,
Спасибо за комментарий, Крейг. Я сделал небольшое изменение на основе вашего отзыва. Надеюсь, это поможет другим в будущем!
Нейт Кук
25

Я заметил, что ответы здесь неполные, у меня была такая же проблема, и она была решена путем открытия свойств проекта и на вкладке сборки и настройки отладки, сняв флажок «Оптимизировать код» . Вы также должны проверить диспетчер конфигурации, как указано выше, чтобы убедиться, что он также работает. Ответ пришел из этого сообщения, и они должны получить кредит: проект VS2015 больше не работает в режиме отладки

Спасибо,

цезарь-моя
источник
2
После стольких усилий я обнаружил, что это основная причина. Странно включение Оптимизировать код. Visual studio считает, что режим Release и даже точки останова не работают. Все, что касается отладки, разваливается.
Морс
1
Вы спасли мою жизнь. Вы бог.
SamyCode
12

Я решил проблему, установив конфигурацию на Debug в окне Configuration Manger, как предложено в этом ответе .

введите описание изображения здесь

Fabriciorissetto
источник
Однако это не по умолчанию (кто-то должен был серьезно испортить ваши конфигурации, чтобы это произошло!), И большинство из нас уже проверили это. (В любом случае это было первое, что я проверил.) - Как сказал ОП, он определенно строит в режиме отладки, и я знаю, что я также делаю фактическую сборку отладки - построенную в режиме отладки, с отключенной оптимизацией, отладка объявлен, создается действительный pdb и т. д.
BrainSlugs83,
1
Хорошо, что вы положили это сюда, Фабрицио, держу пари, есть куча людей, которые пропустили и это.
Молибар,
11

Очистка (и восстановление) решения работает для меня как временное решение. Также вы можете выбрать «Отладка»> «Параметры» и снять Suppress JIT optimizationфлажок.

романоза
источник
VS 2017 версии 15.1 выдала фиктивную ошибку ("отладка сборки выпуска"). Очистка и восстановление заставили его исчезнуть.
DeveloperDan
Visual Studio 2015 с обновлением 3, я получал эту ошибку, когда параметр «Подавить JIT» был снят. Выбор его решил проблему.
Сараванан Сачи
6

У меня была такая же проблема с момента обновления до VS2015 Update 1.

Нашел аналогичный отчет на форумах Microsoft Visual Studio, который указывает на сообщение об ошибке, созданное с ними. здесь

Существуют различные обходные пути, но я думаю, что основная проблема заключается в том, что IIS Express не завершает работу после завершения отладки - и это не из-за того, что опция редактирования и продолжения не отмечена. Самый быстрый способ обхода, который я могу найти, пока ошибка не будет исправлена:

  • Щелкните правой кнопкой мыши значок IIS Express в трее и выйдите из него после отладки (благодарность Дэвиду Тотцке, который предоставил обходной путь для отчета об ошибке)

Не очень хорошо, но я не думаю, что на данный момент существует подходящее решение.

Джон
источник
2
Текущий обходной путь, который я использую, - это средство для очистки, за которым следует начать отладку.
Джерад Роуз
1
Кстати, иногда мне действительно приходится убивать iisexpress; выход из контекстного меню не заставляет его умереть
Марк Совул,
3

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

Бит / с
источник
2
Уже пробовал, не помогло. Получите ту же проблему в новом проекте.
Джон Т.
Я тоже собирался опубликовать этот ответ :) Это помогло мне (VS2015, обновление 3).
Кайо Кампос
3

В моем случае я изменил «Активную платформу решения» для всего решения в «Диспетчере конфигураций» с x86 на Any CPU, устранил проблему.

Мак Р
источник
У меня тоже сработало.
Rahatur
1

Проверьте свойства конфигурации вашего решения. Я столкнулся с той же проблемой и обнаружил, что моя конфигурация отладки фактически создавала некоторые проекты с конфигурацией выпуска.

user5632285
источник
4
Извините, нет, поскольку я уже сказал, что ничего не установлено на Release - все конфигурации являются отладочными. Запуск после чистой НЕ показывает ошибку. Немедленная остановка и повторный запуск показывают ошибку - НИЧЕГО не изменилось между ними, включая проект НЕ ДАЖЕ ПЕРЕСТРОЙКА.
Джон Т.
1

Я заметил, что Visual Studio не убивает процесс iisexpress после того, как я остановил отладчик. Убивание процесса вручную, казалось, исправило это для меня.

Кажется, теперь это было исправлено в обновлении 2.

Alex
источник
1

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

Crowcoder
источник
1

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

Элементарно, я знаю, и понимаю, что выставляю себя идиотом. Но иногда проблема заключается именно в том, о чем сообщают.

Рэнди Ричардсон
источник
0

Убедитесь, что URL-адрес проекта IIS действительно указывает на то, что вы думаете. В случае сомнений нажмите кнопку «Создать виртуальный каталог».

У меня недавно возникла эта проблема, когда я запускал временную версию производственной кодовой базы и переназначил папку в IIS на временную версию, которая действительно выполняла производственную сборку, а не отладочную версию, которую я пытался отлаживать.

Энди Твисс
источник
0

Для меня я нашел 3 \ Release \ ссылки на папку в этом файле FileListAbsolute.txt:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csproj.FileListAbsolute.txt

Они были такими:

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.csprojResolveAssemblyReference.cache

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.dll

C: \ Projects \ MyWebApp.Web \ obj \ Release \ MyChildWebApp.Web.pdb

И простое удаление этих 3 строк за пределами VS, а затем повторное открытие решения решило проблему. Надеюсь, это поможет.

Ian_G
источник
0

Я попробовал все ответы, и у меня сработало удаление некоторого пакета NuGet, а не только ссылки, но и удаления пакета, в моем случае PostSharp. Сначала я попытался удалить ссылку из всех проектов, и это не сработало, затем я просто удалил пакеты из диспетчера. Я не знаю, в чем именно причина, но это то, что решило мои проблемы, надеюсь, это может помочь кому-то там.

JohnZ
источник
0

Перезапустите Visual Studio. Это устранило проблему для меня в 2017 Professional.

TomDane
источник
0

Вот что у меня сработало.

Если это веб-проект, перейдите в свойства проекта веб-проекта и

  1. Если выбран локальный IIS, перезапустите сервер IIS.
  2. Если выбран IIS Express, выйдите из IIS Express с помощью значка на панели задач.

Кажется, что некоторые DLL кешируются, поэтому вышеуказанные шаги сделают кеш недействительным.

Кодирование
источник
0

Это произошло в Visual Studio 2019 в приложении UWP. Снятие флажка Оптимизировать код в настройках csproj / build разрешило это.

Шон Андерсон
источник
-1

Совершенно уверен, что это было исправлено в Visual Studio 2015 с обновлением 2.

Раньше я видел это все время (несколько раз в день) и ни разу не видел этого с момента обновления до обновления 2.

Джерад Роуз
источник
4
Определенно нет. Я получаю это внезапно в обновлении 3 VS 2015
jpmc26
1
Я не сказал, что они не сломали его снова в обновлении 3.;)
Джерад Роуз
У меня есть обновление 2 на dev. box прямо сейчас, и я все еще вижу его. - Не вижу на своих апдейтах 3 коробки. : - /
BrainSlugs83