【问题标题】:What is the default location for MSBuild logs?MSBuild 日志的默认位置是什么?
【发布时间】:2012-07-16 14:43:43
【问题描述】:

我使用的是 Visual Studio Express 2012。日志文件的位置在哪里?我在存储我的解决方案和项目的文件夹中进行了搜索,但找不到任何 .log 文件。

这是日志记录的配置:

【问题讨论】:

  • 没有默认的 .log 文件。查看“输出”窗口。
  • @Hans,在我的情况下,输出窗口有消息说“构建日志中提供了更多信息。”所以某处有一个单独的日志。我还没找到呢。

标签: visual-studio msbuild visual-studio-2012


【解决方案1】:

使用构建输出而不是记录到文件。无需复制/粘贴,只需单击输出中的某处并按 CTRL + S 即可保存。 Visual Studio 将提示您输入位置(使用 Visual Studio 2017 测试,但我假设这在早期版本中也适用)。

【讨论】:

  • 这很好。他们也应该把它放在上下文菜单中。
  • 对我没用,因为输出中的日志没有完整的日志输出
【解决方案2】:

Visual Studio 的日志文件仅支持 C++ 项目。您只需使用其他人的输出窗口即可。

查看类似的帖子:VS2010: minimal build log in output and detailed log in log file

如果您碰巧为 C++ 项目执行此操作,the file is at:

...在中间文件目录中构建日志 ...构建日志的路径和名称由 MSBuild 宏表示 表达式,$(IntDir)\$(MSBuildProjectName).log

【讨论】:

  • 我认为 Visual Studio 没有在文件中详细记录是很愚蠢的。哦,好吧,我不得不接受一个现实。感谢您的回答,@Dmitry
  • @hanxue - 它确实有一个日志。该日志只是没有发送到文件。如果需要日志文件,请从命令行运行 msbuild。
  • 那为什么不这么说:-(
  • 上帝。该死的。为什么这不仅仅是解决方案的一个属性?为什么输出窗口的性能如此糟糕,所以你不得不一直保持最小输出,为什么从一个输出级别更改为另一个输出级别需要 8 个步骤?请修复其中任何一个。
  • @James 我想您可以编写一个宏并将其分配给工具栏按钮。这些链接可能是起点stackoverflow.com/questions/12062515/…vlasovstudio.com/visual-commander
【解决方案3】:

虽然 VS 确实不允许直接这样做,但仍然可以使用“内部”VS2015 的 MSBuild 构建并获取构建窗口输出和日志文件,如下所示:(可以说这有点破解。)

  1. 在您的 VS 托管解决方案中,添加一个新项目(我们称之为“制作”)。 一种。您想要的项目类型是 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 中构建完整的解决方案并获取构建日志。

【讨论】:

  • VS_MsbuildExample 的链接已损坏。
  • 嘿@brad 你在 GitHub 上的示例发生了什么?
  • 修复了github,麻烦了。 @YannDuran
【解决方案4】:

msdn 文档对此非常清楚(而且你不会喜欢它!):

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

上面写着:

为托管代码项目创建构建日志文件 在菜单栏上, 选择构建,构建解决方案。

在“输出”窗口中,突出显示 来自构建的信息,然后将其复制到剪贴板。

打开一个 文本编辑器,例如记事本,将信息粘贴到文件中,然后 然后保存。

【讨论】:

  • 这一切都很好,直到您使用诊断输出并且当您尝试复制到剪贴板时 VS 决定抛出“内存不足”异常。不支持将构建日志发送到 IDE 中的文件确实是一个根本愚蠢的决定。但是,嘿嗬,这就是生活。
  • 管道构建到一个文本文件? msbuild mysln.sln >output.txt(可能需要向其中添加参数以使您的 sln 编译,但您应该能够以正确的详细级别从 vs 输出窗口 iirc 中获取它)
  • 通常当我在命令行上构建时,我让构建系统向终端窗口输出最少的信息,但将详细的日志输出到文件中。 MSBuild 可以做到这一点。
  • “你不会喜欢的!” 6个字就能说明一切,谢谢
猜你喜欢
  • 2012-08-01
  • 2019-09-13
  • 2019-11-14
  • 2015-11-03
  • 2015-10-25
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多