是否可以通过DTE mDte变量获取visual studio实例的进程ID?请参阅下面的代码。
private static DTE mDte;
public static void OpenVisualStudio()
{
Type visualStudioType = Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
mDte = Activator.CreateInstance(visualStudioType) as DTE;
if (mDte != null)
{
mDte.MainWindow.Visible = true;
}
// get process id of visual studio instance through mDte
}
答案 0 :(得分:0)
我做了如下:
public static int OpenVisualStudio()
{
var devenv = Process.Start("devenv.exe");
if (devenv == null)
{
return 0;
}
do
{
System.Threading.Thread.Sleep(2000);
mDte = GetDte(devenv.Id);
}
while (mDte == null);
return devenv.Id;
}
它现在解决了我的问题......
答案 1 :(得分:-1)
DTE
对象的Debugger
属性具有CurrentProcess
属性,其属性为ProcessID
。
int processId = dte.Debugger.CurrentProcess.ProcessID;