我正在研究Visual Studio 2005中的大型C ++解决方案。我想记录该解决方案中一个项目的构建的所有输出。 VS中的输出窗口似乎出现故障。我怀疑它的输出太多了。我无法复制输出,甚至无法将其保存到磁盘。
我的想法是在命令行上构建项目,并将输出重定向到文件。我不确定为了在解决方案的上下文中构建项目,我必须执行什么命令。我试图对项目进行vcbuild,但我认为它缺少从解决方案中继承的数据。
有什么想法吗?
答案 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,如果你选择“最顶级”的装配,它将构建它所需要的一切。