MSBuildログのデフォルトの場所は何ですか?


101

Visual Studio Express 2012を使用しています。ログファイルの場所はどこですか?ソリューションとプロジェクトが保存されているフォルダーを検索しましたが、.logファイルが見つかりません。

これはロギングの設定です:

ここに画像の説明を入力してください


1
デフォルトの.logファイルはありません。[出力]ウィンドウを確認します。
Hans Passant

13
@ハンス、私の場合、出力ウィンドウには「ビルドログで詳細情報が利用可能です」というメッセージが表示されます。どこかに別のログがあります。まだ見つけていません。
Brandon Kuczenski、2015年

回答:


106

Visual Studioのログファイルは、C ++プロジェクトでのみサポートされています。あなただけで仕事をしなければならない他の人のための出力ウィンドウ。

この同様のスレッドを参照してください:VS2010:出力の最小ビルドログとログファイルの詳細ログ

また、C ++プロジェクトでこれを行う場合、ファイルは次の場所あります

...中間ファイルディレクトリ内のビルドログ...ビルドログのパスと名前は、MSBuildマクロ式で表されます$(IntDir)\$(MSBuildProjectName).log


14
ファイルに詳細なログを記録しないのは、Visual Studioの愚かなことだと思います。まあ、私が受け入れなければならない現実。回答ありがとうございます。@ Dmitry
Hanxue 2012

8
@hanxue-ログがあります。そのログはファイルに送信されません。ログファイルが必要な場合は、コマンドラインからmsbuildを実行します。
リッチメルトン


2
神。畜生。なぜこれがソリューションのプロパティではないのですか?なぜ出力ウィンドウはとにかくひどいパフォーマンスなので、常に最小の出力を維持する必要があり、なぜ1つの出力レベルから別の出力レベルに変更するのに8つのステップが必要なのでしょうか。これらを修正してください。
ジェームズ

@Jamesマクロを記述して、ツールバーボタンに割り当てることができると思います。これらのリンクは、開始点である可能性がありますstackoverflow.com/questions/12062515/…およびvlasovstudio.com/visual-commander
Dmitry Pavlov

23

msdnのドキュメントはこれについてかなり明確です(そして、あなたはそれが好きではありません!):

https://msdn.microsoft.com/en-us/library/jj651643.aspx

それが言うところ:

マネージコードプロジェクトのビルドログファイルを作成するにはメニューバーで、[ビルド]、[ソリューションのビルド]の順に選択します。

[出力]ウィンドウで、ビルドからの情報を強調表示して、クリップボードにコピーします。

メモ帳などのテキストエディターを開き、情報をファイルに貼り付けて保存します。


15
これは、診断出力を使用していて、VSがクリップボードにコピーしようとしたときに「メモリ不足」例外をスローすることを決定するまでは問題ありません。本当に、IDE内のファイルへのビルドログの送信をサポートしないという根本的に愚かな決定です。しかし、ほらほら、それは人生です。
Steve Pettifer、2016年

1
ビルドをテキストファイルにパイプしますか?msbuild mysln.sln> output.txt(slnをコンパイルするために、おそらくそれにパラメーターを追加する必要がありますが、正しい冗長レベルでvs出力ウィンドウiircからそれを取得できるはずです)
Daniel M

通常、コマンドラインでビルドする場合、ビルドシステムは最小限の情報をターミナルウィンドウに出力しますが、詳細なログはファイルに出力します。MSBuildはそれを行うことができます。
Cジョンソン

「そして、あなたはそれが好きではない!」それはすべてを6語で伝えます、ありがとう
FIV

23

ファイルにログを記録する代わりにビルド出力を使用します。コピー/貼り付けの代わりに、出力のどこかをクリックし、CTRL + Sを押して保存します。Visual Studioは場所の入力を求めます(Visual Studio 2017でテスト済みですが、これは以前のバージョンでも機能すると想定しています)。

ここに画像の説明を入力してください


これはいい。コンテキストメニューにもこれを配置する必要があります。
2018年

2

VSがこれを直接許可しないことは事実ですが、次のように、VS2015の「内部」でMSBuildを使用してビルドし、ビルドウィンドウの出力とログファイルの両方を取得することは依然として可能です(おそらくこれはちょっとしたハックです)。

  1. VSマネージドソリューションで、新しいプロジェクトを追加します( 'Make'としましょう)。a。必要なプロジェクトタイプはVisual C ++ / NMakeプロジェクトです。
  2. コマンドラインで必要なMSBuildコマンドを定義します(以下を参照)。
  3. ソリューション構成を変更して、通常のマネージプロジェクトではなくNMakeプロジェクトをビルドします。

これにより、MSBuildを直接実行できるBuild、Rebuild、Cleanコマンドラインを含むプロジェクトが作成されます。例えば:

再構築: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean,Build

ビルド: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Build

掃除: MSBuild.exe /ds /v:diag /property:Configuration=Debug ..\BuildTest\BuildTest.csproj /t:Clean

複数のプロジェクトをビルドするために、複数のMSBuild.EXEコマンドラインを指定することもできます。通常のソリューション全体のビルド結果では、最終的なエンドアセンブリのみをターゲットにして、依存関係グラフで個々のターゲットを生成できます。

これにより、.logファイルが生成されます。NAMEは、使用したNMakeプロジェクトの名前です。上記の例では、ログはmake.logです。

実際の例はGitHubで入手できます:https : //github.com/bitblitz/VS_MsbuildExample (Tested with VS2015)

個々のプロジェクトを直接ビルドしても、通常のVSの動作でビルドされますが、VS内で完全なソリューションをビルドして、ビルドログを取得できます。


1
VS_MsbuildExampleへのリンクが壊れています。
JPaget

GitHubであなたの例に何が起こったのですか?
Yann Duran

githubを修正しました。@YannDuran
ブラッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.