2009-08-28 148 views
4

我正在研究Visual Studio 2005中的一個大型C++解決方案。我想記錄該解決方案中一個項目構建的所有輸出。 VS中的輸出窗口似乎出現故障。我懷疑它有太多的輸出來處理。我無法複製輸出,我甚至無法將其保存到磁盤。從命令行在解決方案中構建一個項目

我的想法是在命令行上構建項目,並將輸出重定向到文件。我不確定爲了在解決方案中構建項目需要執行什麼命令。我試圖只是vcbuild項目,但我認爲它缺少從解決方案繼承的數據。

任何想法?

回答

7

使用devenv的命令行:

DevEnv /Build Debug /Project ProjectName %SOLUTION_FILE% 

其中%SOLUTION_FILE%是一個環境變量保存完整 路徑解決方案文件和項目名是該項目的名稱。 輸出將轉至標準輸出。

將全部溶液可以重建與:

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

看看這個page,我想這就是你要找的。如果您只想構建一個項目,請不要忘記/ Project參數。

0

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 

註釋掉或刪除你不想要的框架版本。

我有五個(子)項目的解決方案。我建立了「最底層」項目。它只建立了這個(單個)程序集。

請記住,如果您選擇的項目具有依賴性,它也會構建這些項目。 AKA,如果您選擇「最頂級」組件,它將構建所需的一切。

相關問題