Как запустить PowerShell script из Visual Studio 2010
Если у меня есть файл .ps в Visual Studio, как мне его запустить в контексте проекта?
Ответы
Ответ 1
Не уверен, что именно вы подразумеваете под "из контекста проекта", но вы можете:
-
Создайте Process
Process p = new Process();
-
Затем установите команду процесса:
powershell.exe YourScriptName.ps1
Это работает, если вам просто нужно запустить script.
Ответ 2
Я сделал это, добавив элемент контекстного меню, связанный с внешним инструментом:
Добавьте "Внешний инструмент". Откройте "Инструменты" > "Внешние инструменты". Добавьте новый с этими настройками:
- Название: Запуск с помощью Powershell
- Команда: powershell.exe
- Аргументы: -ExecutionPolicy RemoteSigned -File "$ (ItemPath)"
- Начальный каталог: $(ItemDir)
- Установите флажок "Использовать окно вывода"
- Если вы планируете использовать скрипты, требующие аргументов, установите флажок "Приглашение к аргументам"
Обратите внимание на позицию вашего инструмента в списке (1,2 и т.д.). Нажмите "ОК".
- Перейдите в меню "Инструменты" > "Настроить", "Команды", выберите "Контекстное меню" и
выберите "Контекстные меню проекта и решения". Пункт.
- Нажмите "Добавить команду..".
- Выберите категорию "Инструменты" и выберите "Внешняя команда X"
где x - позиция вашего инструмента в списке.
- Нажмите "ОК".
- Переместите его в нужное положение в меню и нажмите "Изменить выбор",
чтобы дать ему дружеское имя,
- добавить сочетания клавиш и т.д.
- Нажмите "Закрыть".
Щелкните правой кнопкой мыши файл .ps1 в решении explorere и наслаждайтесь. (ПРИМЕЧАНИЕ. Я также сделал это для cmd.exe для запуска .bat файлов.)
Ответ 3
Лучший способ сделать это - установить расширение PowerGUI для Visual Studio 2010
Одной из особенностей этого расширения является интегрированное окно инструментальной панели инструментов. Это имеет доступ к объектам автоматизации, таким как DTE
через $EnvDTE
, и обеспечит хорошую среду для запуска script для проекта
Ответ 4
Вы также должны посмотреть StudioShell, который обеспечивает глубокую интеграцию DTE в пользовательский хост PowerShell.