Command line 带/pp(/preprocess)的MSbuild 4未写入预处理文件

Command line 带/pp(/preprocess)的MSbuild 4未写入预处理文件,command-line,msbuild,Command Line,Msbuild,出于诊断原因,我想使用msbuild创建预处理文件。文档声明,我只需要使用/pp:Filename开关调用msbuild。所以我做了: msbuild project.sln /t:Build /p:Configuration=Release /pp:out.txt 它还创建了一个“out.txt”文件,因此该参数显然有一些影响,但该文件是空的(大小为0,没有内容)。那么,预处理的项目文件编写不正确的可能原因是什么?但项目文件的构建很好。问题在于,您在解决方案上运行此操作。预处理参数仅适用于M

出于诊断原因,我想使用msbuild创建预处理文件。文档声明,我只需要使用/pp:Filename开关调用msbuild。所以我做了:

msbuild project.sln /t:Build /p:Configuration=Release /pp:out.txt

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

问题在于,您在解决方案上运行此操作。预处理参数仅适用于MSBuild中的项目


Thorsten

顺便说一句,MSBuild能够从任何解决方案生成项目文件。只需设置以下环境变量

Set MSBuildEmitSolution=1
执行

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

Ah,这解释了很多:)谢谢。