Я делаю плагин для Bricscad, который по сути является dll, который используется приложением. Этот плагин использует как консольные команды, так и окна WPF. Когда я пытаюсь отладить его и установить точки останова, происходит странное поведение - если код был вызван командой, он останавливается на точке останова и его можно отладить. Однако, если я открываю одно из моих окон WPF и соответствующий код запускается из него (т. Е. Нажатием кнопки), он все равно ломается в точке останова, но все, что я получаю, это сообщение: «Ваше приложение перешло в состояние останова, но нет кодав настоящее время выполняется, что поддерживается выбранным механизмом отладки (например, выполняется только собственный код времени выполнения). "Это происходит в рамках одной DLL. DLL была построена на основе 4.5.1 .NET Framework.
Я проверил модули из студии - DLL загружена, а также символы для нее. Я также пытался снять флажок «Просто мой код», но безрезультатно. Я проверил потоки - в обоих случаях код выполнялся в основном потоке. Единственное отличие, которое я вижу, состоит в том, что это сообщение появляется только в том случае, если код вызывается из окна WPF.
Вот пример используемого файла xaml.
<Window x:Class="Plugin.Window"
Title="Window"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
MaxHeight="400"
MinHeight="350"
Width="400"
MinWidth="400" Height="350">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/Resource;component/AppDictonary.xaml">
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<StackPanel Orientation="Vertical" Margin="5">
<Button x:Name="_startButton" Content="Start" Width="100" Click="ButtonStart_Click" />
</StackPanel></Window>
И функция, вызываемаяWPF
private void ButtonStart_Click(object sender, RoutedEventArgs e)
{
Foo();
}
Если точка останова в Foo запускается консольной командой в Bricscad, отладка в порядке. Но если он вызывается из ButtonStart_Click, появляется сообщение.
Что может быть возможной причиной этого сообщения? Кто-нибудь сталкивался с таким поведением (может быть, в некоторых других dll)?