Настройка отладки для приложения-службы C# с зависимостями COM - PullRequest
2 голосов
/ 10 февраля 2020

Я работаю над базой кода C#, которая интегрируется с некоторым устаревшим кодом C ++ через COM, зарегистрированный в системе. Из-за трудностей работы с COM среда разработки на данный момент полностью настраивается через виртуальную машину Hyper-V. Инструменты разработки (например, Visual Studio) также находятся на виртуальной машине. В основном мы ничего не делаем на хост-машине. Вся разработка ведется внутри ВМ. Я думаю, что основная причина этого заключается в том, что если регистрация COM как-то испортится, мы можем легко восстановить ОС, просто удалив виртуальную машину и создав новую.

Я хочу найти способ отделить разработку среда от ВМ. В идеале потребность в виртуальной машине полностью исчезает.

Сначала я хотел бы исследовать вариант удаленной отладки, когда на хост-компьютере установлена ​​Visual Studio 2019, а виртуальная машина используется только для тестирования / отладки во время выполнения. , По сути, единственной вещью, работающей на ВМ, была бы скомпилированная мной программа + любые библиотеки COM, зарегистрированные в системе.

Когда я выполнял аналогичную настройку для этого года go с C ++, я помню, как компилировал исполняемые файлы в папку на хосте, который смонтирован в виртуальной машине. Оттуда вы используете средства удаленной отладки на виртуальной машине, чтобы запустить сеанс отладки (из VS на хосте), используя путь к смонтированной папке.

Для C# Я не уверен, что подобное механизм доступен, и я не уверен, что это вообще возможно. Кто-нибудь может поделиться своим опытом с хорошей настройкой для этого?

В идеале, ВМ не понадобится, и вместо этого я мог бы «песочницей» COM-вещи из хост-ОС другим способом. Чем меньше зависимость от ОС, тем лучше, по крайней мере, для отладки. Стоит отметить, что обычно это приложение работает как windows служба, и для отладки я пытаюсь запустить его как консольное приложение.

...