Sporadi c ошибка визуальной студии отладки C# кода с использованием библиотеки VB. net - PullRequest
0 голосов
/ 27 февраля 2020

У меня проблемы с отладкой Windows приложения, которое использует некоторые VB. net dll. ниже образца кода

 dba = _DataAccessService.GetDataAccess(<<Connection String>>);

                parameters = new List<SqlParameter>();
                parameters.Add(new SqlParameter("@parameter1", 
                     FeedbackGenerator.Properties.Settings.Default.parameter));

                retVal = dba.GetDataSet(CommandType.Text, query.ToString(), parameters);

Dba является экземпляром класса-оболочки для класса DataAccess (написан на VB. net, работает без ошибок с 5 лет, даже работает в производстве без жалоб ) каждый раз, когда он терпит неудачу на разных линиях. забавно то, что он не выдает никаких исключений или ошибок, просто Visual Studio останавливает отладку. Я много искал на многих форумах, не смог найти ничего актуального. До сих пор я выполнил

  1. Проверенные версии совместимости dll.
  2. Доступ к базе данных.
  3. Целевая версия. net.
  4. поиск в каждом возможном журнале, т. е. журнале событий, журнале визуальной студии.
  5. проверено C# версия.
  6. Возможность воспроизвести ту же проблему в другом разработчике m / c.
  7. Проверено, что нет никаких зависимостей.

Кто-нибудь сталкивался с такой проблемой? Если да, Вы нашли какой-либо способ смягчения или root причины?

Вот конфигурация проекта

    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
    <ConfigFile>Debug.config</ConfigFile>
    <Prefer32Bit>false</Prefer32Bit>

1 Ответ

0 голосов
/ 27 февраля 2020

Я обнаружил проблему с кодом, так как это было приложение windows. все рабочие потоки выполняются, как и ожидалось, однако в методе MainF0rm_load был блок «И наконец», который вызвал выход основного потока (application.exit). что объяснило споради c неудачей. Я искал не в том месте. Это «проблема с потоками, которые не удалось решить правильно», а не проблема совместимости .Dll

...