Создайте один проект внутри решения из командной строки - PullRequest
5 голосов
/ 28 августа 2009

Я работаю над большим C ++-решением в Visual Studio 2005. Я хочу записать все выходные данные сборки одного проекта в этом решении. Окно вывода в VS, кажется, работает со сбоями. Я подозреваю, что слишком много выходных данных для этого. Я не могу скопировать вывод и даже не могу сохранить его на диск.

Моя идея - построить проект из командной строки и просто перенаправить вывод в файл. Я не уверен, какую команду мне нужно выполнить, чтобы построить проект в контексте решения. Я пытался просто создать проект, но думаю, что в нем отсутствуют данные, унаследованные от решения.

Есть идеи?

Ответы [ 3 ]

8 голосов
/ 28 августа 2009

Использовать DevEnv из командной строки:

DevEnv /Build Debug /Project ProjectName  %SOLUTION_FILE%

где% SOLUTION_FILE% - переменная среды, содержащая полный путь к файлу решения и ProjectName - имя проекта. Выходной сигнал перейдет к стандартному выходу.

Все решение можно перестроить с помощью:

DevEnv /Rebuild Debug %SOLUTION_FILE%

Пример; для проекта (установщика) с именем MSQuantSetup :

set SOLUTION_FILE=D:\dproj\MSQall\MSQuant\MSQuant.sln
DevEnv /Build Debug /Project MSQuantSetup  %SOLUTION_FILE%

Или напрямую без переменной окружения:

DevEnv /Build Debug /Project MSQuantSetup  D:\dproj\MSQall\MSQuant\MSQuant.sln
1 голос
/ 28 августа 2009

Взгляните на эту страницу , я думаю, это то, что вы ищете. Не забудьте параметр / Project, если вы хотите построить только один проект.

0 голосов
/ 02 июня 2011

C # версия с MSBuild (поместите приведенный ниже код в файл .bat)

set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727

call %msBuildDir%\msbuild ".\SomeFolder\MyCSharpProject.csproj" /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_One_Project_CSharp_LOG.log


set msBuildDir=

Или для C ++:

set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319

call %msBuildDir%\msbuild ".\Project1\Project1\Project1.vcxproj" /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_One_Project_C_Plus_Plus_LOG.log

set msBuildDir=

Вам нужно будет выбрать свой фреймворк (2.0 или 4.0 (или другой ??), где у меня

set msBuildDir=%WINDIR%\Microsoft.NET\Framework\vA.BCDEF

Просто закомментируйте или удалите версию фреймворка, которую вы не хотите.

У меня было решение с пятью (под) проектами. Я построил «самый нижний» проект. И он только построил эту (единственную) сборку.

Имейте в виду, что если выбранный вами проект имеет зависимости, он также создаст их. АКА, если вы выберете сборку «самый верхний», он соберет все, что нужно.

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