从Cmd控制台使用MSbuild编译.sln文件时,在特定项目文件夹中创建生成日志

从Cmd控制台使用MSbuild编译.sln文件时,在特定项目文件夹中创建生成日志,build,msbuild,logfile,Build,Msbuild,Logfile,我有一个包含.vcxproj文件的解决方案文件 对于所有.vcxproj项目文件,生成日志文件属性设置为$(IntDir)$(MSBuildProjectName).log 当我将解决方案加载到VS2013并从解决方案资源管理器调用“重建解决方案”时,会在相应的文件夹中生成日志文件。它工作正常 我的问题是我有很多这样的.sln文件。我希望使用MsBuild命令为所有.sln文件创建批处理文件并运行 我用于每个.sln文件的msbuild命令是C:\Windows\Microsoft.NET\Fr

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

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

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

我的问题是我有很多这样的.sln文件。我希望使用MsBuild命令为所有.sln文件创建批处理文件并运行

我用于每个.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命令中的某些特定开关/选项,该开关/选项使生成日志属性与
选项->项目和解决方案->VC++项目设置->生成日志一起工作,并且仅在Visual Studio内部生成时才有效。在内部,VisualStudio的功能类似于

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从命令行构建解决方案时完全复制此行为并不容易,还要查看哪一个基本上是重复的:您必须解析解决方案并从中获取所有项目,然后解析这些项目以获取BuildLog属性的值,然后为每个项目调用msbuild

您可以做什么:使用VS从命令行生成:

devenv xyz.sln /build
或者使用msbuild并在单个日志文件中收集所有输出

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