2012-07-17 120 views
60

我正在使用Visual Studio Express 2012.日誌文件的位置在哪裏?我在文件夾中搜索瞭解決方案和項目的存儲位置,但找不到任何.log文件。MSBuild日誌的默認位置是什麼?

這是日誌記錄配置:從Visual Studio

enter image description here

+0

沒有默認的.log文件。在輸出窗口中查找。 – 2012-07-17 17:15:07

+3

@Hans,在我的情況下,輸出窗口中顯示消息「在構建日誌中有更多信息可用」。所以有一個單獨的日誌。我還沒有找到它。 – 2015-01-08 20:29:21

回答

75

日誌文件只支持C++項目。你只需要與其他人的輸出窗口一起工作。

看到這個類似的線程:VS2010: minimal build log in output and detailed log in log file

而如果你恰好在爲C++項目做到這一點,the file is at

...在中間文件目錄 構建日誌...構建日誌的路徑和名稱由MSBuild宏 表達式$(IntDir)\$(MSBuildProjectName).log表示。

+10

我認爲這只是愚蠢的Visual Studio不具有詳細的日誌記錄在文件中。哦,我不得不接受這個現實。感謝您的回答,@Dmitry – hanxue 2012-07-18 22:48:04

+5

@hanxue - 它有一個日誌。該日誌只是不發送到文件。如果你想要一個日誌文件,從命令行運行msbuild。 – 2012-07-19 01:16:39

+13

那麼爲什麼不這樣說呢:-( – 2016-06-30 20:33:10

10

MSDN文檔是關於這個很清楚(你是不是會喜歡它!):

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

凡說:

要創建構建日誌託管代碼項目文件在菜單欄上, 選擇Build,Build Solution。

在輸出窗口中,從構建中突出顯示 信息,然後將其複製到剪貼板。

打開 文本編輯器,如記事本,將信息粘貼到文件中,然後保存。

+7

這是一切都很好,直到你使用診斷輸出和VS決定拋出一個'內存不足'異常,當你試圖複製到剪貼板。真的是一個基本愚蠢的決定,不支持發送構建日誌到文件中的IDE。但是嘿嘿,這就是生活 – 2016-11-01 11:12:40

+0

將構建管入文本文件? msbuild mysln.sln> output.txt(可能需要添加參數才能讓你的sln編譯,但你應該能夠從正確的詳細級別的vs輸出窗口iirc中獲取) – 2017-01-19 16:58:44

1

雖然這是真的,VS不直接允許這樣做,它仍然有可能建立與MSBuild的「內部」 VS2015並同時獲得構建窗口輸出和日誌文件,具體如下:(可以說這是一個)

  1. 在您的VS託管解決方案中,添加一個新項目(我們稱之爲'Make')。 a。你想要的項目類型是Visual C++/NMake項目。
  2. 在命令行中定義你需要的MSBuild命令(見下文)。
  3. 更改解決方案配置以構建NMake項目而不是常規託管項目。

這將創建一個具有Build,Rebuild和Clean命令行的項目,您可以在其中直接執行MSBuild。例如:

重建: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 (與VS2015測試)

注意,直接構建單個項目仍然會建立一個與正常VS行爲,但你可以建立內部VS完整的解決方案,並得到構建日誌。