c# - 在扩展程序中以编程方式访问 visual studio 的 powershell 控制台(程序包管理器控制台)

标签 c# visual-studio entity-framework powershell visual-studio-2012

我正在尝试开发一个 visual studio 扩展来自动化我们 Entity Framework 迁移过程的一部分。我检查了以编程方式添加迁移,但在查看 Entity Framework 源代码后,在 powershell 脚本中完成了很多工作,所以我想在包管理器控制台 (nuget) 上 Hook 并在那里发送命令并从控制台读取结果如果可能的话。

如何在 Visual Studio 扩展中以编程方式访问程序包管理器控制台?

例如,我想将以下命令发送到包管理器控制台。

add-migration migration01

最佳答案

在包管理器控制台中运行脚本的最佳方式是将参数传递给它。

EnvDTE.DTE _ObjDTE;
_ObjDTE = (DTE)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE");
var script = "function global:SaveAll {write-host \"All files saved.\"} SaveAll";
_ObjDTE.ExecuteCommand("View.PackageManagerConsole", script);

关于c# - 在扩展程序中以编程方式访问 visual studio 的 powershell 控制台(程序包管理器控制台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030547/

相关文章:

c# - 长时间处理后显示对话框

c# - readerwriterlock 允许在获取写锁时读取?

visual-studio-2010 - 在进行 Visual Studio (VS) 构建时如何修复 "Root element is missing."?

c# - Entity Framework 启用迁移

c# - sqlParameters vs string.Format 哪个更能提高速度?

c# - 开始一个不需要等待的任务

visual-studio - 无法使用数据源配置向导在Web项目中添加数据源

c++ - 我应该下载哪个 Clang 编译器?

entity-framework - 处理从 Entity Framework 中的存储过程返回的多个结果集

sql-server - 在 Visual Studio 中从 SQL Server Express 数据库获取数据库名称