Вы можете использовать комбинацию этих шагов отладки для настройки launch.json
, которую будет поддерживать хост Адаптер отладки .
Вам необходимо будет использовать EnvDTE для вызова команды DebugAdapterHost.Launch
, так как вы, вероятно, не хотите вмешательства пользователя. В этой статье MSDN показано, как получить CommandWindow в Visual Studio, чтобы вы могли отправить команду.
Шаги: 1. Создайте файл launch.json
, как показано ниже:
{
// NOTE: replace 'my_container_name' with the name of the container you want to connect to
"version": "0.2.0",
"adapter": "docker.exe",
"adapterArgs": "exec -i my_container_name /remote_debugger/vsdbg --interpreter=vscode",
"configurations": [
{
"name": ".NET Core Docker Attach",
"type": "coreclr",
"request": "attach",
// replace with the process id you want to attach to. You can find this by running 'pidof' in the container
// ex: `docker exec -it my_container_name pidof dotnet`
"processId": 93
}
]
}
Используйте эту команду для вызова вашего launch.json
файла:
DebugAdapterHost.Launch /LaunchJson:"<path-to-the-launch.json-file-you-saved>" /EngineGuid:541B8A8A-6081-4506-9F0A-1CE771DEBC04
Получить окно команд из DTE (быстрый и грязный кодобразец):
DTE dte = (DTE)Package.GetGlobalService(typeof(SDTE));
Window window = dte.Windows.Item(EnvDTE.Constants.vsWindowKindCommandWindow);
window.Activate();
CommandWindow commandWindow = window.Object as CommandWindow;
string command = "DebugAdapterHost.Launch " +
"/LaunchJson:\"path/to/launch.json\" " +
"/EngineGuid:541B8A8A-6081-4506-9F0A-1CE771DEBC04";
commandWindow.SendInput(command, true);