Отладка приложения Win32 с использованием библиотек .NET, VS2008 работает, 2010 - нет, есть идеи, где мне начать искать? - PullRequest
2 голосов
/ 18 ноября 2010

У нас есть собственная программа, написанная на Delphi 2007, файл .32 Win32.

Эта программа содержит среду выполнения .NET и загружает несколько сборок, которые мы написали.

Поэтому, если я скопирую этот исполняемый файл в каталог bin \ Debug, сконфигурирую проект .NET, с которого запускается исполняемый файл, я смогу отладить его в 2008 году. В основном, точки останова в сборках .NET будут отображаться с полым кружком до точкипрограмма загрузила среду выполнения .NET и загрузила мои сборки, после чего они стали функциональными точками останова, и они сломались бы в нужной точке и т. д.

По сути, отладка работала, если бы я использовал Visual Studio 2008 для этого.

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

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

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

Кто-нибудь еще что-нибудь делал?как это и знаете, что я должен настроить?

Ответы [ 2 ]

1 голос
/ 18 ноября 2010

Проверьте эти настройки: alt text

Обход: Попробуйте подключиться к приложению вручную и указать также для отладки управляемого кода:

Шаг 1

Debug window

Шаг 2

Debug options

1 голос
/ 18 ноября 2010

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

Вот аналогичный вопрос , но nUnit - это exe, а не ваше приложение dephi. Я подозреваю, что ваша проблема в некоторой степени связана.

ОБНОВЛЕНИЕ: взгляните на это решение . Возможно, вам понадобится добавить конфигурацию, чтобы указать студии использовать не-4.0 среду выполнения, например:

<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

Вот сообщение , описывающее проблему , и более официальный пост в блогах MSDN.

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