Geo*_*uer 5 console powershell visual-studio
实体框架和Nuget都这样做。它们添加了可以从Visual Studio软件包管理器控制台启动的Powershell Commandlet。

如果我可以编写一些以项目为中心的实用程序,这些实用程序可以提交到我的源代码管理中,并可供该控制台的所有开发人员使用,那将非常好。
我该怎么做呢?
请注意,我并不是在寻找第三方解决方案(例如StudioShell),而且我知道我可以编写普通的powershell脚本来完成很多事情。我对如何在Visual Studio程序包管理器控制台中编写一流的公民功能特别感兴趣,例如Get-Package和Update-Database。
EntityFramework 的集成是通过 NuGet 完成的,因此您无法轻松地将其包含在解决方案的项目中。您必须通过 NuGet 包。不过,您可能可以使用包的本地文件夹使其工作。本质上,EF 在其包的工具文件夹中包含一个普通的 powershell 模块以及一个init.ps1加载该模块的模块。其内容:
param($installPath, $toolsPath, $package, $project)
if (Get-Module | ?{ $_.Name -eq 'EntityFramework' })
{
Remove-Module EntityFramework
}
Import-Module (Join-Path $toolsPath EntityFramework.psd1)
Run Code Online (Sandbox Code Playgroud)
init.ps1打开解决方案文件时由 NuGet/VS 运行。来自NuGet 文档:
Init.ps1 首次在解决方案中安装包时运行。
* 如果将相同的包安装到解决方案中的其他项目中,则在这些安装过程中不会运行该脚本。
* 每次打开解决方案时,脚本也会运行(必须同时打开包管理器控制台窗口才能运行脚本)。例如,如果安装包,关闭 Visual Studio,然后启动 Visual Studio 并使用包管理器控制台窗口打开解决方案,Init.ps1 脚本将再次运行。