デバッガーを名前付きプロセスにアタッチする Visual Studio パッケージを作成しようとしています。
パッケージで次のコードを使用しています。
var info = new VsDebugTargetInfo
{
dlo = DEBUG_LAUNCH_OPERATION.DLO_AlreadyRunning,
bstrExe = strProcessName,
bstrCurDir = "c:\\",
bstrArg = "",
bstrEnv = "",
bstrOptions = null,
bstrPortName = null,
bstrMdmRegisteredName = null,
bstrRemoteMachine = "",
cbSize = (uint)System.Runtime.InteropServices.Marshal.SizeOf<VsDebugTargetInfo>(),
grfLaunch = (uint)(__VSDBGLAUNCHFLAGS.DBGLAUNCH_DetachOnStop| __VSDBGLAUNCHFLAGS.DBGLAUNCH_StopDebuggingOnEnd| __VSDBGLAUNCHFLAGS.DBGLAUNCH_WaitForAttachComplete),
fSendStdoutToOutputWindow = 1,
clsidCustom = VSConstants.CLSID_ComPlusOnlyDebugEngine
};
VsShellUtilities.LaunchDebugger(ServiceProvider, info);
ただし、次の役に立たないエラーが表示されます。
Exception : Unable to attach. Operation not supported. Unknown error: 0x80070057.
プロセスが開始されていない場合、このエラーが発生するため、コードは明らかに何かを実行しています
Exception : Unable to attach. Process 'xxxxxxxx' is not running on 'xxxxxxxx'.
プロセスは管理された .net 4 プロセスであり、VS UI を介して接続できます。
文脈上、私はVS 2010で同じ仕事をするために使用していた単純なマクロを置き換えようとしていますが、それは明らかに新しいバージョンのVisual Studioでは実行できません。