2012-07-17 130 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完整的解决方案,并得到构建日志。