使用msbuildbuild立一个解决scheme文件
我正准备使用msbuild构build一个Visual Studio解决scheme文件。我使用下面的命令行来构build解决scheme
msbuild.exe SolutionFile.sln /t:Build/p:Configuration=Release;Platform=Win32
尽pipe构build在某个时候开始,但是构build看起来是悬而未决,并且无法向前移动,如下所示
Done Building Project "D:\SolutionPath\ProjectFile10.vcxproj" (default targets).
在SolutionFile.sln下有很多.proj,我必须build立。
我必须使用msbuild.exe而不是devenv.com
有一种诊断msbuild里发生了什么的技术,可以帮助你弄清楚发生了什么。 从命令提示符设置一个环境variables:
set msbuildemitsolution=1
一旦你运行了msbuild,那么这将生成一个.metaproj
文件。 这个文件是msbuild在内部使用的,然后删除。 你可以阅读它来找出实际目标的名字。 Build
目标已展开,以显示实际调用的内容。 然后,您可以尝试使用msbuild的/t
标志来构build单个目标,以确定哪个目标导致了问题。
将详细属性设置为诊断并将输出保存到文件。 这将帮助您确定解决scheme中的哪个项目挂起,并帮助诊断您的问题。
命令行语法如下,将输出保存到名为MyProjectOutput.log的文件中:
msbuild SolutionFile.sln /t:build /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic
它也出现在/ t目标之后需要一个空间来build立在你列出的命令中传递的参数。
msbuild.exe SolutionFile.sln /t:Build /p:Configuration=Release;Platform=Win32
另外,你确定每个项目都包含一个“Release”和“Win32”configuration吗? 你也可以尝试运行下面的命令,看看编译的东西。 Msbuild将自动运行所需的默认目标和configuration。
msbuild SolutionFile.sln
你可以尝试的另一个select是只编译项目,看看是什么产生的:
msbuild "D:\SolutionPath\ProjectFile10.vcxproj" /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic