【问题标题】:Creating Build logs into the Specific project folder, while compiling a .sln file using MSbuild from Cmd console在特定项目文件夹中创建构建日志,同时使用来自 Cmd 控制台的 MSbuild 编译 .sln 文件
【发布时间】:2014-03-03 17:42:11
【问题描述】:

我有一个包含 .vcxproj 文件的解决方案文件。

对于所有 .vcxproj 项目文件,构建日志文件属性设置为 $(IntDir)$(MSBuildProjectName).log

当我将解决方案加载到 VS2013 并从解决方案资源管理器中调用 Rebuild Solution 时,会在相应的文件夹中生成日志文件。它工作正常。

我的问题是我有很多这样的 .sln 文件。我想为所有 .sln 文件创建一个带有 MsBuild 命令的批处理文件并运行。

我对每个 .sln 文件使用的 msbuild 命令是 C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe /nologo /m /t:Rebuild /p:"Configuration=Release " /p:"Platform=x86" "xyz.sln"

但是当我从命令控制台运行相同的命令时,构建日志文件根本不会生成。

我在这个 MS 构建命令中是否缺少一些特定的开关/选项

【问题讨论】:

    标签: build msbuild logfile


    【解决方案1】:

    该构建日志属性与 Options->Projects and Solutions->VC++ Project Settings->Build logging 一起使用,并且仅在 Visual Studio 中构建时才有效。在内部视觉工作室做类似的事情

    msbuild /t:Rebuild [Properties] [FileLogger parameters] xyz.vcxproj
    

    对于解决方案中的每个 (C++) 项目。对于 FileLogger 参数的所有可能性,请在命令行中输入 msbuild /? - 当 VS 调用 msbuild 时,它们将等效于

    /flp:Verbosity=[verbosity set in 'Build and run' in VS];LogFile=[value of BuildLog property]
    

    在使用 msbuild 从命令行构建解决方案时准确复制此行为并不容易,另请参阅this unanswered question,它基本上是重复的:您必须解析解决方案并从中获取所有项目,然后解析获取 BuildLog 属性的值,然后为每个调用 msbuild。

    您可以做什么:使用 VS 从命令行构建:

    devenv xyz.sln /build
    

    或使用 msbuild 并将所有输出收集到一个日志文件中

    msbuild xyz.sln /fl:LogFile=xyz.log
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2019-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多