从命令行在解决方案中构建一个项目

时间:2009-08-28 07:19:57

标签: visual-studio-2005

我正在研究Visual Studio 2005中的大型C ++解决方案。我想记录该解决方案中一个项目的构建的所有输出。 VS中的输出窗口似乎出现故障。我怀疑它的输出太多了。我无法复制输出,甚至无法将其保存到磁盘。

我的想法是在命令行上构建项目,并将输出重定向到文件。我不确定为了在解决方案的上下文中构建项目,我必须执行什么命令。我试图对项目进行vcbuild,但我认为它缺少从解决方案中继承的数据。

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

从命令行使用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 :(得分:1)

看一下这个page,我想这就是你要找的东西。如果您只想构建一个项目,请不要忘记/ Project参数。

答案 2 :(得分:0)

带有MSBuild的C#版本(将以下代码放在.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

只需注释掉或删除您不想要的框架版本。

我有五个(子)项目的解决方案。我建立了“最底层”项目。它只构建了这个(单个)组件。

请记住,如果您选择的项目具有依赖关系,那么它也会构建它们。 AKA,如果你选择“最顶级”的装配,它将构建它所需要的一切。