Как запустить visual studio через командную строку

Обновлено: 03.07.2024

В данном разделе рассматриваются методы программного создания, использования и обработки команд Visual Studio в модулях-расширениях данной среды с помощью интерфейсов объектной модели автоматизации и IDE служб. Показана связь между IDE командами и UI элементами среды через пользовательские меню и панели инструментов.

Эта статья устарела. Обновленную версию этой статьи вы можете прочитать здесь.

Введение

Команды Visual Studio позволяют напрямую взаимодействовать со средой разработки с помощью клавиатуры. Большинство функционала различных диалоговых и инструментальных окон среды и инструментальных панелей представлено командами. Пункты главного меню приложения и кнопки панелей инструментов фактически являются командами. Команды могут и не иметь непосредственного представления в UI среды разработки, они не являются непосредственно элементами интерфейса IDE, но могут быть ими представлены, как, например, в случае с пунктами главного меню.

Модуль-расширение PVS-Studio для IDE в качестве одного их своих основных UI компонентов (другим таким компонентом является инструментальное окно) интегрирует в главное меню Visual Studio несколько собственных подгрупп команд, позволяя пользователю контролировать все аспекты использования статического анализа как из самой среды, так и через прямой вызов команд из командной строки.

Использование команд

Любая IDE команда, независимо от формы её представления (или отсутствия такового) в интерфейсе IDE, может быть исполнена напрямую через окна Command Window и Immediate Window, а также с помощью аргумента командной строки devenv.exe /command при запуске приложения из консоли.

Команды могут принимать дополнительные аргументы, передаваемые через пробел. Приведём пример вызова стандартной системной команды меню File -> New -> File, с передачей ей дополнительных параметров, через окно среды Command Window:

Синтаксис написания команд подчиняется следующим правилам:

  • Имя команды и её аргументы разделяются пробелом
  • Содержащие пробелы значения аргументов оборачиваются в кавычки
  • Знак вставки (^) используется для экранирования символов
  • Односимвольные сокращения имён аргументов можно сочетать, например /case (/c) и /word (/w) могут быть записаны как /cw

При использовании параметра запуска command, имя команды вместе со всеми её аргументами следует обернуть в двойные кавычки:

Для быстрого вызова команде может быть назначен псевдоним с помощью команды alias:

Команды, добавляемые в главное меню IDE модулем-расширением PVS-Studio, могут также быть использованы и через вызов /command, в частности, например, для решения задачи интеграции статического анализа в автоматизированный сборочный процесс проекта. Здесь заметим, что непосредственно сам статический анализатор PVS-Studio.exe представляет собой как раз консольное приложение, работающее по схожему с компилятором принципу, т.е. он получает на вход путь до файла с исходным кодом и параметры компиляции этого файла, выдавая результаты своего анализа в потоки stdout/strerr. Понятно и то, что анализатор может быть относительно легко интегрирован непосредственно в сборочную систему (например, основанную на том же MSBuild, NMake или даже GNU Make) на одном уровне с вызовом C/C++ компилятора. Подобная система уже сама по определению будет реализовывать обход всех исходных файлов с предоставлением параметров компиляции для каждого из них, что фактически позволяет подменять (или скорее дополнять) вызов компилятора вызовом анализатора. И хотя такой режим работы полностью поддерживается анализатором PVS-Studio.exe, подобная интеграция анализа в сборочный процесс требует достаточно близкого знакомства непосредственно со сборочной системой, ровно как и собственно возможности для такой её модификации, что может быть как затруднительно, так и вовсе не доступно.

В случае запуска Visual Studio из командной строки с аргументом /command, команда будет выполнена сразу после загрузки среды. При этом среда разработки будет запущена как обычное UI приложение, соответственно, и без перенаправления в запускающую её консоль стандартных потоков ввода/вывода. Стоит заметить, что в общем случае Visual Studio является именно UI средой разработки и не предназначена для работы в режиме командной строки. Так, например, для компиляции проектов в системах автоматизации сборок рекомендуется напрямую вызывать сборочную утилиту Microsoft MSBuild, поддерживающую все стандартные типы проектов Visual Studio.

С осторожностью следует применять вызов команд Visual Studio через /command при работе в неинтерактивном режиме рабочего стола (например, при запуске из службы Windows). Например, проверяя возможность интегрировать статический анализ PVS-Studio в сборочные процессы Microsoft Team Foundation, мы столкнулись с несколькими интересными моментами, т.к. по умолчанию Team Foundation работает именно как Windows служба. Сам наш плагин был не готов работать в неинтерактивном режиме рабочего стола, неправильно управляя своими дочерними окнами и диалогами, что в свою очередь приводило к аварийному падению. У Visual Studio таких проблем не обнаружилось, а точнее практически не обнаружилось. После первого запуска среды, для каждого пользователя Visual Studio выдаёт диалог, предлагающий выбрать одну из стандартных конфигураций интерфейса. Этот же диалог она выдала и для пользователя LocalSystem, которому принадлежал сервис Team Foundation. Оказалось, что данный диалог Visual Studio генерирует и в неинтерактивном режиме при вызове /command, блокируя всё дальнейшее исполнение. А так как пользователь не имеет интерактивного рабочего стола, то и закрыть этот диалог оказалось затруднительно. В итоге мы всё же смогли это сделать, запустив Visual Studio для LocalSystem в интерактивном режиме с помощью утилиты psexec из набора PSTools.

Создание и обработка команд в VSPackage. Vsct файлы

Для создания и управления интегрируемыми IDE командами в VSPackage используются таблицы команд (Visual Studio Command Table, vsct файлы). Таблицы команд — это текстовые конфигурационные файлы в формате XML, компилируемые VSCT-компилятором в бинарные cto-файлы (command table output). CTO файлы включаются затем в качестве ресурса в финальную сборку модуля-расширения IDE. С помощью VCST команды могут быть назначены на пункты главного меню IDE или кнопки панелей инструментов. Поддержка VSCT файлов доступна начиная с Visual Studio 2005, в предыдущих версиях IDE для описания команд использовались CTC (command table compiler) файлы, в рамках данной статьи они рассматриваться не будут.

Каждой команде в vsct файле присваивается уникальный идентификатор — CommandID, имя и группа, определяется сочетание для быстрого вызова. С помощью различных флагов задаётся её внешний вид в интерфейсе (в меню или на панели инструментов), определяются параметры её видимости и т.д.

Рассмотрим базовую структуру VSCT файла. Корневой элемент таблицы команд CommandTable должен содержать под-узел Commands, в котором будут определены все пользовательские команды, группы, меню, панели инструментов и т.д. Узел Commands должен также иметь атрибут Package со значением, соответствующим идентификатору разрабатываемого пакета расширения. Под-узел корневого узла Symbols должен содержать определения для всех используемых в VSCT файле идентификаторов. Под-узел корневого узла KeyBindings содержит задаваемые по умолчания сочетания для быстрого вызова команд.

Элемент Buttons задаёт непосредственно сами IDE команды, задавая их внешний вид и привязывая их к группам команд.

Элемент Menus описывает структуру UI элементов главного меню и панели инструментов, и связывает их с группами команд элемента Groups. Группа команд, связанная с элементом Menu, будет отображена на заданном здесь меню или панели инструментов.

Элемент Groups формирует группы пользовательских команд среды.

Для добавления vsct файла в MSBuild проект VSPackage необходимо сначала вставить следующий узел для вызова VSCT компилятора в csproj файл (в автогенерируемом проекте SDK шаблона VSPackage vsct файл будет уже добавлен в проект):

И затем указать на него с помощью атрибута ProvideMenuResource у вашего наследника класса Package:

Назначение обработчиков для команд, определённых в VSCT файле, возможно с помощью службы, доступной через интерфейс IMenuCommandService. Получить ссылку на него можно с помощью метода GetService класса Package:

Приведём пример назначения обработчика на команду меню (команда должна быть определена в vsct файле заранее):

Для получения аргументов команды во время обработки её вызова можно преобразовать получаемое обработчиком значение EventArgs в OleMenuCmdEventArgs:

Работа с командами через интерфейс EnvDTE.DTE

Использование объектной модели автоматизации для вызова, модификации и создания IDE команд, в отличие от механизма VSCT, доступного только для VSPackage, позволяет взаимодействовать с командами из модулей-расширений Visual Studio типа Add-In.

При этом добавленная подобным образом команда будет сохранена в IDE и появится в меню после перезапуска среды, даже если создавшее её расширение не будет загружено. Поэтому вызывать данный метод стоит только при самом первом подключении Add-In модуля после его установки (подробно этот момент описан в разделе, посвященном объектной модели автоматизации Visual Studio). Для метода OnConnection Add-In модулей доступен вариант первичной загрузки (при самой первой инициализации), вызываемый только один раз за всю жизнь модуля, который также можно использовать для интеграции UI элементов в IDE.

Интерфейс EnvDTE.Command абстрагирует в себе отдельную команду IDE. Его можно использовать для модификации связанной с ним команды. Данный интерфейс позволяет работать с командами среды как из VSPackage, так и из Add-In модулей. Получим ссылку на объект автоматизации EnvDTE.Command для нашей пользовательской команды MyCommand1 и используем данный интерфейс для назначения ей "горячей клавиши" быстрого вызова:

Назначенное для команды MyGroup.MyCommand1 сочетание быстрого вызова теперь будет видно в настройках среды в диалоге Keyboard, Environment.

Стоит помнить, что команда Visual Studio не является по умолчанию элементом интерфейса IDE. Метод интерфейса Commands.AddCommandBar позволяет создавать такие элементы UI среды, как пункты главного меню, инструментальные панели, контекстные меню, и назначать на них пользовательские команды.

Для удаления команды или командной панели из IDE можно воспользоваться методом Delete интерфейсов Command/ CommandBar:

В общем случае не рекомендуется создавать команды каждый раз при загрузке Add-In модуля и удалять их при его выгрузке, т.к. это может замедлить загрузку самой IDE, а в случае некорректно отработавшего метода OnDisconnect пользовательские команды не будут полностью очищены до следующего запуска модуля. Поэтому, добавление и удаление команд среды рекомендуется осуществлять в процессе инсталляции/деинсталляции модуля, используя, например, получение ссылки на интерфейс DTE из стороннего приложения, в данном случае инсталлятора. Подробно инициализация Add-Inn модулей и получение доступа к объекту DTE из внешних приложений описаны в разделе, посвящённом модели объектной автоматизации EnvDTE.

Любая команда среды (как пользовательская, так и встроенная) может быть вызвана с помощью с помощью метода ExecuteCommand. Приведём пример вызова пользовательской команды MyCommand1:

Для обработки команды основной класс Add-In модуля должен наследоваться от интерфейса IDTCommandTarget и реализовывать метод обработки Exec:

У меня есть три разные версии Visual Studio, установленные на моей машине, Visual Studio 2003, Visual Studio 2008 и VS2005.

Как запустить определенную версию Visual Studio с помощью командной строки.

devenv.exe открывает последнюю версию Visual Studio. Что делать, если требуется открыть Visual Studio 2003 с помощью командной строки?

вы должны использовать путь, чтобы отличить их. Например, вот команда Visual Studio 2005 на моем ноутбуке:

вот еще один совет: вы можете выяснить, как запускать различные приложения Windows из командной строки, найдя их в меню "Пуск" Windows, щелкнув правой кнопкой мыши значок, выберите "Свойства", а затем на вкладке "Ярлык" посмотрите на целевое текстовое поле. Скопируйте этот текст, и обычно вы можете использовать его в командной строке консоли.

этот ответ-это другой способ обработки запуска Visual Studio в Windows с 7 по 10 С помощью клавиши Windows пуск to старт целевое приложение.

    закрепите каждую версию на панели задач. Один из способов-щелкнуть правой кнопкой мыши активную запущенную программу и выбрать " Pin to Taskbar. Или найдите в диспетчере программ и щелкните правой кнопкой мыши снова, чтобы закрепить.

закрепите каждую другую версию рядом с панелью задач. Для этот пример закрепляет каждую версию последовательно 2003, 2005 и, наконец, 2008. Убедитесь, что они находятся рядом с кнопкой Пуск для облегчения запоминания номера индекса.

enter image description here

это быстро и легко и может запускать несколько экземпляров без вызова командной консоли.

используйте devenv.exe для конкретной версии Visual Studio. Будет один, расположенный в папке Common7\IDE установки. Вот каталоги, как я помню для различных версий.

  • 2008: %ProgramFiles%\Microsoft Visual Studio 9.0\Common7\Ide\devenv.exe
  • 2005: %ProgramFiles%\Microsoft visual Studio 8\Common7\Ide\devenv.exe

можно также использовать" Visual Studio 2005 командной строки "и" Visual Studio 2008 командной строки "для загрузки среды командной оболочки конкретной версии, а затем запустить "devenv". Обычно это находится в разделе Пуск- > Программы - >Visual Studio - >Visual Studio Tools

Если вы не можете или не хотите получить доступ к нему через меню "Пуск", вы также можете "загрузить" среду VS-version в обычной командной оболочке, используя следующее (для VS 2008, с путем установки по умолчанию): (Примечание: измените x86 в соответствии с вашей платформой)

(32 бит) %comspec% /k ""C:\Program файлы\Microsoft Visual Studio 8\VC\vcvarsall.летучая мышь"" х86
(64 бит) %comspec% /k ""C:\Program файлы (x86)\Microsoft Visual Studio 8\VC\vcvarsall.летучая мышь"" х86

или для VS 2008 (с путем установки по умолчанию):

(32 бит) %comspec% /k ""C:\Program файлы\Microsoft Visual Studio 9.0\VC\vcvarsall.летучая мышь"" х86
(64 бит) %comspec% /k ""C:\Program файлы (x86)\Microsoft Visual Студия\9.0 ВК\файл vcvarsall.летучая мышь"" х86

каждый устанавливает среду, поэтому, если вы затем выполните "devenv", он загрузит версию correxct.

используйте путь отмены, например, C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe .

Here is the shortcut, You can just type devenv.exe and start visual studio

вот ярлык, вы можете просто ввести devenv.exe и запустите visual studio

я попробовал ответ, который был принят в этом вопросе, но он не работал для меня

Я смог запустить Visual studio из RUN введя devenv.exe в нем.

WIN+R не работал для открытия RUN , поэтому в командной строке я набрал следующий путь в командной строке

1) devenv (открыть VS)

2) devenv *.sln (затем вкладка для автозаполнения и введите, чтобы открыть VS и автоматически загрузить текущее решение)

по умолчанию, это работает только в командной строке разработчика. Чтобы он работал в обычной консоли (я использую cmder) вам нужно добавить путь к папке devenv.exe в путь к имени переменной системной среды. Для меня это так:

C:\Program Files (x86)\Microsoft Visual Studio17\Professional\Common7\IDE

вы также можете использовать это скрипт и сохраните его как и летучая мышь, и тогда он найдет для вас *.sln-файл в папке и автоматически открывает visual studio с загруженным решением (как в 2.)

кто-нибудь знает, как открыть его с помощью Visual Express 2012 для рабочего стола Windows?

или просто найдите " разработчик "в меню" приложения "Windows 8, затем он приведет вас к"командной строке разработчика для VS2012".

для Visual Studio на mac вы можете:

open '/Applications/Visual Studio.app' [path_to].sln

Я создаю псевдоним в моем bash_profile, поэтому я могу просто перейти в каталог и открыть его в VS:

Кстати, редактор отличный (кроссплатформенный)! Спасибо, Наделла!

Вы можете скачать его с сайта Microsoft

В командной строке или командной строке просто введите - code -n "D:\myTextFile.txt" и приступайте. code ./search.pl работал у меня на Windows 7 в собственном терминале visual studio code -n filename - Открывает файл в НОВОМ окне. code -r filename - Открывает файл в уже открытом окне (это то, что я хотел и почему я комментирую. Отлично работает из окна терминала VSCode). code -g filename - Удобно! Как видно из запуска code --help , флаг -g является сокращением от --goto и это моя любимая команда, которую я использую при отладке. Вы можете использовать только имя файла, и оно действует так же, как -r ИЛИ, вы можете использовать его <file:line[:character]> для перехода прямо к строке или даже символа в строке!

Используйте команду, code /path/to/file/or/directory/you/want/to/open чтобы открыть файл в VS Code.

В Windows и Linux code команда должна быть установлена ​​автоматически. В macOS его нужно установить вручную:

Запустите VS Code. Теперь откройте палитру команд (F1) и введите, shell command чтобы найти Shell Command: Install 'code' command in PATH command . Перезагрузите терминал.

Искал это, чтобы установить vscode как инструмент сравнения. Вы можете использовать code -d file1 file2 для сравнения файлов. Я использую Windows, и это определенно не работает для меня. @ChristopherHarris, если вы используете инсайдерскую сборку, тогда это команда code-insiders Эта команда отсутствует для меня в VS Code 1.22.2 не-инсайдерах.

Mac OS X

  1. Загрузите Visual Studio Code для Mac OS X.
  2. Дважды щелкните VSCode-osx.zip, чтобы развернуть содержимое.
  3. Перетащите Visual Studio Code.app в папку «Приложения», сделав его доступным на панели запуска.
  4. Добавьте код VS в свою док-станцию, щелкнув правой кнопкой мыши значок и выбрав «Параметры», «Сохранить в доке».

/ .zshrc, если вы используете zsh).

Теперь вы можете просто ввести код. в любой папке, чтобы начать редактирование файлов в этой папке.

Наконечник : Вы также можете добавить его в сборку VS Code Insiders, изменив "com.microsoft.VSCodeInsiders". Также, если вы не набираете весь текстовый код, просто измените его на c.

Linux

  1. Загрузите Visual Studio Code для Linux.
  2. Создайте новую папку и извлеките VSCode-linux-x64.zip внутри этой папки.
  3. Дважды щелкните Код, чтобы запустить код Visual Studio.
@NathanTuggy Я думаю, вы забыли приклеить корпус окна. Согласно документации, теперь вы можете установить его на Mac с помощью палитры команд (Cmd-Shift-P), Shell Command: Install 'code' in PATH На Mac это работает, но откроет другой экземпляр VS Code, чем ярлык, установленный из палитры команд. (Я заметил, что я запускал две версии одновременно после добавления и опробования вышеуказанного кода оболочки Mac - и поиск имени файла был намного медленнее в версии, открытой вручную установленным ярлыком.)

VS Code - обязательный редактор кода на 2018 год

Для пользователей Windows 10 многое возможно, так же, как пользователи Mac OS вводят code . .

Найдите путь к папке VS Code \ bin, например C:\Program Files\Microsoft VS Code\bin . Папка bin включает файл с именем code.cmd

Следуйте приведенным ниже инструкциям и гордитесь используемой ОС.

Найдите "Расширенные настройки системы" с самого начала.

Нажмите на переменные среды

В системных переменных выберите «путь» на вкладке «Переменная» и нажмите «Изменить».

Щелкните New в правой части всплывающего окна.

Скопируйте свой путь из пути крошки проводника и вставьте его в новый открытый путь на шаге 4, например: - C:\Program Files\Microsoft VS Code\bin

Нажмите ОК во всех открытых окнах, чтобы подтвердить изменения и перезапустить cmd

Перейдите в свой cmd рабочий каталог на сервере и введите code .

C:>cd wamp64\www\react-app> code . открыть с помощью VS Code в Windows.

Visual Studio Code также включает окно командной строки (терминала), и вы можете открыть одно или несколько из них с помощью
Ctrl + ` на клавиатуре.

Есть установленная Студия 2015.
Добавил в PATH C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe
Создал тестовую программу(Hello World). При запуске cl test.cpp матерится:

Гугл посоветовал запустить скрипт C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\vsvars32. Запустил. Нифига, ошибка осталась.
Вопрос: как все-таки запустить этот чертов компилятор из дефолтной командной строки?

Простой 2 комментария

Nipheris

Действительно есть необходимость из дефолтной вызывать? Девелоперская преднастроенная не подойдёт? Если нет, то откройте её и посмотрите что запускается при старте, сделайте себе также. Про батик почти правильно, но запускать надо "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" с соответствующим ключом. Посмотрите в ярлыках, про которые писал res2001, так как раз оно и запускается. Чтобы переименные среды сработали надо вызвать этот командный файл через call внутри одного командного файла с командой cl.exe (и прочими). Еще вариант - вызвать в одной строке две команды, сперва командный файл, потом, через & cl.exe.

В PATH нужно добавлять каталог (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin), а не cl.exe

Но ошибка говорит, что у вас не указан путь поиска ВКЛЮЧАЕМЫХ файлов.
То есть сам cl.exe находит. Вам нужно добавить опцию /I или -I с указанием, где include файлы лежат

cl.exe -Ic:\src test.cpp

Со студией поставляется комплект командных сценариев, настраивающих окружение командной строки для работы компилятора. Достаточно командную строку запускать через эти сценарии. Ярлыки на эти сценарии находятся в меню Пуск в папке студии.
Например у меня для VS2017 есть такие:
x64 Native Tools Command Prompt for VS 2017
x86 Native Tools Command Prompt for VS 2017
Соответственно для 64битной и 32битной сборки приложений. В 2015 студии есть аналогичные, только название немного изменено.
Запускайте ком.строку через этот сценарий и все будет собираться. неудобно потом в файловой системе блуждать. Так в любой директории Shift+ПКМ -> Открыть терминал в текущей директории.

Для основных проектов я вытащил несколько ярлыков на раб.стол и в рабочей папке ярлыка указал каталог проекта. Просто запускаешь с ярлыка, выполняется настройка среды и ты в папке проекта.
Для остального, да приходится командами менять текущий каталог.

Если немного заморочиться можно руками добавить аналогичный пункт в контекстное меню с предварительным запуском скрипта настройки среды.

Читайте также: