Powershell EnvDTE 开关 Visual Studio 会话(打开多个单独的解决方案)

Powershell EnvDTE Switch Visual Studio Session (Multiple Separate Solutions open)

这是我想要做的...我打开了两个单独的 Visual Studio 解决方案,它们完全是 单独的解决方案 ,我希望它保留那样。解决方案 1 是我的 powershell DTEObject 所指向的。我希望能够切换到解决方案 2,并在该会话中打开一个文件。 这是我用来获取 DTE 对象并执行打开文件命令的 powershell 代码:

$dteobj = [runtime.interopservices.marshal]::getactiveobject('VisualStudio.DTE')
$dteobj.ExecuteCommand("Open ""$file""")
$dteobj.ExecuteCommand("Edit.Goto $line")

我想切换解决方案的原因是因为我想将焦点放在包含该文件的解决方案的 window 上,这样就不会混淆人们对哪些文件在哪些解决方案中的疑惑.希望这足够有意义。

我明白了。您可以使用 PSCX 模块中的 powershell 命令 Get-RunningObject,并且您必须 select 该对象的 DTE

$dteObj = Get-RunningObject | Where-Object {$_.FullName -eq "$solutionDir$solutionName"} | Select-Object DTE
$dteobj.DTE.ExecuteCommand("Open ""$file""")
$dteobj.DTE.ExecuteCommand("Edit.Goto $line")