Як скласти проект Visual Studio з командного рядка?


112

Я розробляю сценарій оформлення замовлення, збирання, розповсюдження, тестування та цикл фіксування великого рішення C ++, яке використовує Monotone , CMake , Visual Studio Express 2008 та спеціальні тести.

Усі інші частини виглядають досить прямо, але я не бачу, як скласти рішення Visual Studio без отримання графічного інтерфейсу.

Сценарій написаний Python, але відповідь, яка дозволила б мені просто зателефонувати на: os.system.

Відповіді:


116

Я знаю два способи це зробити.

Спосіб 1
Перший метод (який я віддаю перевагу) - це використання msbuild :

msbuild project.sln /Flags...

Спосіб 2
Ви також можете запустити:

vcexpress project.sln /build /Flags...

Параметр vcexpress повертається негайно і не друкує жодного результату. Я думаю, що це може бути те, що ви хочете для сценарію.

Зауважте, що DevEnv не розповсюджується з Visual Studio Express 2008 (я витратив багато часу, намагаючись розібратися в цьому, коли вперше виникла подібна проблема).

Отже, кінцевим результатом може бути:

os.system("msbuild project.sln /p:Configuration=Debug")

Ви також хочете переконатися, що ваші змінні середовища правильні, оскільки msbuild та vcexpress за замовчуванням не є на системному шляху. Або запускайте середовище побудови Visual Studio і запускайте свій скрипт звідти, або модифікуйте шляхи в Python (з os.putenv ).


Це також стосується Visual Studio 2010 Express.
Семюел Хармер

msbuild, здається, не постачається з VS 2008
Lucky Luke

46

MSBuild зазвичай працює, але я раніше стикався з труднощами. Можливо, вам пощастить

devenv YourSolution.sln /Build 

MSBuild не працює з проектами Visual Fortran (* .vfproc). Дякую, що вказали мені на devenv, що і є.
Майк Бекман

Мені доводиться використовувати: devenv YourSolution.sln / Build, але працював велике спасибі.
бобва

7
Ви також можете вказати конфігурацію:devenv YourSolution.sln /Build Debug
Josh Stribling

Чудово працює. Можна також здійснити перебудову за допомогою команди нижчеdevenv YourSolution.sln /rebuild
Abhineet

1
Також можна відновити для випуску чи режиму налагодження, просто додавши налагодження чи реліз після одного пробілу. Наприклад: devenv YourSolution.sln /rebuild releaseабоdevenv YourSolution.sln /rebuild debug
Abhineet

20

Якщо чесно, я повинен додати свої 2 копійки.

Ви можете це зробити за допомогою msbuild.exe . Існує багато версій msbuild.exe .

C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework64 \ v3.5 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe
C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe

Використовуйте потрібну версію. В основному, ви повинні використовувати останній.

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe

Отже, як це зробити.

  1. Запустіть вікно COMMAND

  2. Введіть шлях до msbuild.exe

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe

  1. Введіть шлях до проектного рішення, як

"C: \ Користувачі \ Clark.Kent \ Документи \ візуальна студія 2012 \ Проекти \ WpfApplication1 \ WpfApplication1.sln"

  1. Додайте потрібні прапори після шляху рішення.

  2. Натисніть ENTER

Зверніть увагу, що ви можете отримати допомогу щодо всіх можливих прапорів

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / help


6
Мені дуже подобається, як ви додали деталі для нових розробників, як, де знайти msbuild тощо
Ayushmati

8

Використання, msbuildяк вказували інші, працювало на мене, але мені потрібно було зробити трохи більше, ніж просто це. Перш за все, msbuildповинен мати доступ до компілятора. Це можна зробити, запустивши:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"

Тоді msbuildне було в моєму $ PATH, тому мені довелося запустити його через його явний шлях:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" myproj.sln

Нарешті, мій проект використовував деякі подібні змінні $(VisualStudioDir). Здається, їх не встановлено, msbuildтому мені довелося встановити їх вручну за допомогою /propertyпараметра:

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" /property:VisualStudioDir="C:\Users\Administrator\Documents\Visual Studio 2013" myproj.sln

Цей рядок тоді нарешті дозволив мені скласти свій проект.

Бонус : схоже, що інструменти командного рядка не потребують реєстрації після 30 днів їх використання, як це робить "безкоштовне" видання Visual Studio Community на базі GUI. Із вимогою реєстрації Microsoft ця версія навряд чи безкоштовна. Безкоштовно як у Facebook, якщо що-небудь ...



3

У багатьох випадках DEVENV працює добре, але на WIXPROJ для створення мого інсталятора WIX все, що я отримав - це помилка "CATASTROPHIC" у журналі Out.

Це працює: MSBUILD /Path/PROJECT.WIXPROJ / t: Build / p: Конфігурація = Release

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.