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,Commandstab, selectContext MenuorToolbar, and choose "Project and Solution Context Menus | Item". - Click "
Add Command...". - Choose
Toolscategory, and choose "External Command X" wherexis 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:
Create a
ProcessProcess p = new Process();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.
加载中,请稍侯......
精彩评论