如何向VisualStudio控制台添加命令?

时间:2015-01-06 21:00:57

标签: visual-studio powershell console

Entity Framework和Nuget都这样做。他们添加了PowerShell命令行开关,可以从visual studio包管理器控制台启动。

Comands in the Visual Studio Console

如果我能编写一些可以提交给我的源代码控制并且可以从该控制台为所有开发人员提供的以项目为中心的实用程序,那真的很棒。

我该怎么做?

请注意,我并不是在寻找第三方解决方案(例如StudioShell),而且我知道我可以编写正常的PowerShell脚本来执行许多操作。我特别感兴趣的是如何在Visual Studio包管理器控制台中编写作为一等公民的函数,如Get-PackageUpdate-Database

1 个答案:

答案 0 :(得分:2)

EntityFramework的集成是通过NuGet完成的,因此您无法轻松地在解决方案的项目中实现它。你必须通过一个NuGet包。虽然,您可能可以使用包的本地文件夹。从本质上讲,EF在其软件包的tools文件夹中包含一个普通的PowerShell模块以及一个加载模块的init.ps1。内容:

param($installPath, $toolsPath, $package, $project)

if (Get-Module | ?{ $_.Name -eq 'EntityFramework' })
{
    Remove-Module EntityFramework
}

Import-Module (Join-Path $toolsPath EntityFramework.psd1)
打开解决方案文件时,NuGet / VS运行

init.ps1。来自NuGet docs

  

Initisps1首次在解决方案中安装软件包时运行     *如果在解决方案中将相同的软件包安装到其他项目中,则在这些安装期间不会运行该脚本     *每次打开解决方案时脚本也会运行(必须打开程序包管理器控制台窗口才能运行脚本)。例如,如果安装软件包,关闭Visual Studio,然后启动Visual Studio并使用软件包管理器控制台窗口打开解决方案,则会再次运行Init.ps1脚本。