【问题标题】:Powershell EnvDTE Switch Visual Studio Session (Multiple Separate Solutions open)Powershell EnvDTE 切换 Visual Studio 会话(打开多个单独的解决方案)
【发布时间】:2018-04-28 23:05:35
【问题描述】:

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

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

我想切换解决方案的原因是因为我想将焦点放在包含该文件的解决方案的窗口上,这样它就不会让人们混淆解决方案中的文件。希望这有足够的意义。

【问题讨论】:

标签: visual-studio powershell envdte


【解决方案1】:

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

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

【讨论】:

  • 您可能想补充一些细节,Get-RunningObject 命令来自开源 PSCX 模块,不是内置的。
  • 哦,哈哈,我什至都不知道。我知道我有那个模块。我已编辑我的答案以包含该信息
  • Powershell 5.1,没有要安装的模块。不过同样的想法。 github.com/jefflomax/visual-studio-dte-utilities/blob/main/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 2013-07-22
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多