Плагин отладки Bricscad - код не поддерживается выбранным механизмом отладки - PullRequest
1 голос
/ 22 октября 2019

Я делаю плагин для 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)?

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