如何从Visual Studio 2010中运行PowerShell脚本

16

如果我在 Visual Studio 中有一个 .ps 文件,我该如何在项目上下文中运行它?

4个回答

15

我通过添加与外部工具相关的上下文菜单项来完成这个操作:

添加一个“外部工具”。转到工具 > 外部工具。使用以下设置添加一个新工具:

  • 标题:使用Powershell运行
  • 命令:powershell.exe
  • 参数:-ExecutionPolicy RemoteSigned -File "$(ItemPath)"
  • 初始目录:$(ItemDir)
  • 勾选“使用输出窗口
  • 如果您计划使用需要参数的脚本,请勾选“提示输入参数

注意一下您的工具在列表中的位置(1,2,等等...)。点击“确定”。

  • 现在转到“工具” > “自定义”,选择“命令”选项卡,在“上下文菜单”或“工具栏”中选择“项目和解决方案上下文菜单 | 项目”。
  • 点击“添加命令...”。
  • 选择“工具”类别,选择“外部命令X”,其中x是您的工具在列表中的位置(索引从1开始,而不是0)。
  • 点击“确定”。
  • 将其移动到您想要的菜单位置,并点击“修改选择”以赋予其友好名称,添加键盘快捷方式等。
  • 点击“关闭”。

右键单击您在解决方案资源管理器中的.ps1文件,然后享受它。(注意:我还为cmd.exe运行.bat文件执行了此操作。)


4

不确定你所说的“在项目上下文中”确切含义是什么,但你可以:

  1. Create a Process

    Process p = new Process();
    
  2. Then set the command of the process to be:

    powershell.exe YourScriptName.ps1
    

如果您只需要运行脚本,则此方法可行。


太好了!谢谢。我需要修改一个项目文件的XML,但是很难动态访问项目路径,因为这个脚本不会一直在同一个位置运行。 - Don Rolling

4

与使用NuGet相比如何?我会假设NuGet控制台以某种方式连接到DTE。 - Mike Shepard
NuGet 在安装时使用 PowerShell... 我正在研究 PowerShell,正是出于这个原因。 - Don Rolling
Jared,非常有用。我已经有PowerGUI了,但我有点困惑如何使用它。我最大的问题是,我尝试运行的脚本说它们是用比我拥有的新版本编译的,但我刚刚下载了它。还在努力解决这个问题。 - Don Rolling

4

您还应该查看StudioShell,它提供了在自定义PowerShell主机中深度集成DTE的功能。


哇,StudioShell真是太棒了! - Don Rolling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接