0

我正在尝试自动化从源代码管理中打开解决方案的过程。

我打开了 VS12,但没有打开解决方案或项目。是否可以更改目录,然后从包管理器控制台打开解决方案?

(这有点离题,但如果有更好的方法来做到这一点)我正在尝试编写脚本,以便可以运行通过 nuget 安装的 powershell 模块:

PM> Get-MyProject 'SomeName'

然后该模块将从 pwd 获取最新的源 cd 并打开解决方案。我的模块已经可以获取源代码,但我无法弄清楚如何在 powershell 中打开解决方案。似乎 $dte 应该能够做到,但我尝试了:

PM> $dte.Solution.Open('NugetTest.sln')

我找回了错误

使用“1”参数调用“打开”的异常:“找不到。(来自 HRESULT 的异常:0x80030002 (STG_E_FILENOTFOUND))”在第 1 行 char:1 + $dte.Solution.Open('NugetTest.sln ') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + 完全限定错误 ID:COMException

4

1 回答 1

1

包管理器控制台的默认目录(除非您已经定义了一个配置文件并更改它)是 %userprofile%。可能不是您的解决方案所在的地方。如果您编写一个 powershell 脚本并将其放在您的解决方案目录中,然后从 Power Shell 控制台执行它,您可以获得解决方案的路径:

$path = Split-Path -parent $MyInvocation.MyCommand.Path

您可以创建这样的解决方案:

$solution = $dte.Solution
$solution.Create("C:\Temp", "MySolution.sln")

第一个参数表示您要创建解决方案的目录,第二个参数是解决方案本身的名称。

要打开现有解决方案:

$solution = $dte.Solution
$solution.Open("<path to your solution>")

如果它不起作用,则您的路径可能不正确。

于 2013-02-23T14:40:07.967 回答