带有/ pp(/ preprocess)的MSbuild 4不会写入预处理文件

Seb*_*ter 9 msbuild command-line

我想用诊断原因创建一个带有msbuild的预处理文件.文档说明,我只需要使用/ pp:Filename开关调用msbuild.所以我做了:

msbuild project.sln /t:Build /p:Configuration=Release /pp:out.txt
Run Code Online (Sandbox Code Playgroud)

它还会创建一个'out.txt'文件,因此该参数显然会产生一些影响,但该文件为空(大小为0,没有内容).那么预处理的项目文件写得不正确的原因可能是什么?项目文件虽然很好.

Tho*_*ans 8

BTW MSBuild能够从任何解决方案生成项目文件.只需设置以下环境变量即可

Set MSBuildEmitSolution=1
Run Code Online (Sandbox Code Playgroud)

并执行

msbuild.exe MySolution.sln. 
Run Code Online (Sandbox Code Playgroud)

它将生成一个能够携带预处理参数的MySolution.sln.metaproj


Tho*_*ans 6

问题是,您正在解决方案上运行该程序,预处理参数仅适用于MSBuild中的项目。

索斯滕