我正在尝试自动化从源代码管理中打开解决方案的过程。
我打开了VS12,但没有解决方案或项目打开。是否可以更改目录,然后从程序包管理器控制台打开解决方案?
(这有点不合时宜,但如果有更好的方法可以做到这一点)我正在尝试编写脚本,以便通过nuget安装的PowerShell模块可以运行:
PM> Get-MyProject 'SomeName'
然后,模块将从pwd获取最新的源CD并打开解决方案。我的模块已经可以获得源代码,但我无法弄清楚如何在PowerShell中打开解决方案。好像$ dte应该可以做到,但我试过了:
PM> $dte.Solution.Open('NugetTest.sln')
我收回了错误
使用“1”参数调用“打开”的异常:“无法找到。(HRESULT异常:0x80030002(STG_E_FILENOTFOUND))” 在行:1个字符:1 + $ dte.Solution.Open('NugetTest.sln') + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:COMException
答案 0 :(得分: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>")
如果它不起作用,您的路径可能不正确。