2009-08-28 26 views
4

Visual Studio 2005で大きなC++ソリューションを開発しています。そのソリューション内の1つのプロジェクトのビルドからすべての出力をログに記録します。 VSの出力ウィンドウが誤動作しているようです。私はそれが処理するにはあまりにも多くの出力があると思う。私は出力をコピーすることはできませんし、ディスクに保存することさえできません。コマンドラインからソリューション内に1つのプロジェクトを構築する

私の考えは、プロジェクトをコマンドラインでビルドし、出力をファイルにリダイレクトすることです。私は、ソリューションのコンテキストでプロジェクトを構築するために、どのコマンドを実行しなければならないのかよくわかりません。私はプロジェクトをvcbuildしようとしましたが、ソリューションから継承したデータが欠けていると思います。

アイデア?

答えて

7

使用devenvを:

%のSOLUTION_FILE%はソリューションファイルと プロジェクト名への完全 パスを保持している環境変数がプロジェクトの名前です
DevEnv /Build Debug /Project ProjectName %SOLUTION_FILE% 

。 出力は標準出力に出力されます。

全体溶液を用いて再構築することができる。

DevEnv /Rebuild Debug %SOLUTION_FILE% 

例。 MSQuantSetupという名前(インストーラ)のプロジェクトのために:

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

か、直接環境変数なし:MSBuildので

DevEnv /Build Debug /Project MSQuantSetup D:\dproj\MSQall\MSQuant\MSQuant.sln 
1

このpageをご覧ください。これはあなたが探しているものだと思います。 1つのプロジェクトだけをビルドする場合は、/ Projectパラメータを忘れないようにしてください。コマンドラインから

0

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= 
あなたは、私が

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

を持っているあなたのフレームワーク(2.0または4.0(または他の??)を、選択する必要があります

だけコメントアウトするか、あなたがしたくないフレームワークのバージョンを削除します。

私は5つの(サブ)プロジェクトのソリューションを用意しました。私は「最下位」のプロジェクトを作りました。そして、この(単一の)アセンブリだけを構築しました。

あなたが選んだプロジェクトに依存関係がある場合は、それも同様にビルドされます。あなたが「一番上の」アセンブリを選択すると、必要なものすべてが構築されます。

関連する問題