我正在研究Visual Studio 2005中的一個大型C++解決方案。我想記錄該解決方案中一個項目構建的所有輸出。 VS中的輸出窗口似乎出現故障。我懷疑它有太多的輸出來處理。我無法複製輸出,我甚至無法將其保存到磁盤。從命令行在解決方案中構建一個項目
我的想法是在命令行上構建項目,並將輸出重定向到文件。我不確定爲了在解決方案中構建項目需要執行什麼命令。我試圖只是vcbuild項目,但我認爲它缺少從解決方案繼承的數據。
任何想法?
我正在研究Visual Studio 2005中的一個大型C++解決方案。我想記錄該解決方案中一個項目構建的所有輸出。 VS中的輸出窗口似乎出現故障。我懷疑它有太多的輸出來處理。我無法複製輸出,我甚至無法將其保存到磁盤。從命令行在解決方案中構建一個項目
我的想法是在命令行上構建項目,並將輸出重定向到文件。我不確定爲了在解決方案中構建項目需要執行什麼命令。我試圖只是vcbuild項目,但我認爲它缺少從解決方案繼承的數據。
任何想法?
使用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
看看這個page,我想這就是你要找的。如果您只想構建一個項目,請不要忘記/ Project參數。
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,如果您選擇「最頂級」組件,它將構建所需的一切。