开发者

How do I run a PowerShell script from Visual Studio 2010

If I have a .ps file in Visual Studio, how do 开发者_运维知识库I go about running it within the context of the project?


I did this by adding a context menu item linked to an external tool:

Add an "External Tool". Go to Tools > External Tools. Add a new one with these settings:

  • Title: Run with Powershell
  • Command: powershell.ex
  • Arguments: -ExecutionPolicy RemoteSigned -File "$(ItemPath)"
  • Initial Directory: $(ItemDir)
  • Check "Use Output Window"
  • If you plan to use scripts that require arguments, check "Prompt For Arguments"

Take note of the position your tool is in the list (1,2, etc...) Click OK.

  • Now go to Tools > Customize, Commands tab, select Context Menu or Toolbar, and choose "Project and Solution Context Menus | Item".
  • Click "Add Command...".
  • Choose Tools category, and choose "External Command X" where x is the position your tool was in the list (index starts with 1, not 0).
  • Click OK.
  • Move it to the position you want in the menu, and click "Modify Selection" to give it a friendly name,
  • add keyboard shortcuts, etc..
  • Click Close.

Right click your .ps1 file in the solution explorere and enjoy. (NOTE: I also did this for cmd.exe to run .bat files.)


Not sure what exactly you mean by "from within the context of the project" but you can:

  1. Create a Process

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

    powershell.exe YourScriptName.ps1
    

This works if you just need to run the script.


The best way to do this is to install the PowerGUI extension for Visual Studio 2010

  • http://visualstudiogallery.msdn.microsoft.com/01516103-d487-4a7e-bb40-c15ec709afa3/

One of the features of this extension is an integrated powershell tool window. This has access to automation objects like DTE via $EnvDTE and will provide a good environment for running the script against the project


You should also look at StudioShell, which provides a deep integration of the DTE in a custom PowerShell host.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜