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

发布于 2024-12-26 06:35:09 字数 273 浏览 0 评论 0原文

出于诊断原因,我想使用 msbuild 创建一个预处理文件。文档指出,我只需要使用 /pp:Filename 开关调用 msbuild 即可。所以我这样做了:

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

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

I want to create a pre processed file with msbuild for diagnostic reasons. The documentation states, that I just need to call msbuild with the /pp:Filename switch. So I did:

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

It also creates an 'out.txt' file, so the argument obviously has SOME impact, but the file is empty (size 0, no content). So what could be possible reasons the preprocessed project file isn't written correctly? The project file builds fine though.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮年 2025-01-02 06:35:09

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

托尔斯滕

the problem is that you're running this on a solution the preprocess parameter only works for projects in MSBuild.

Thorsten

妖妓 2025-01-02 06:35:09

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

Set MSBuildEmitSolution=1

并执行

msbuild.exe MySolution.sln. 

它就会生成一个MySolution.sln.metaproj,它可以携带预处理参数

BTW MSBuild is able to generate a projectfile from any solution. Just set the following environment variable

Set MSBuildEmitSolution=1

and execute

msbuild.exe MySolution.sln. 

It will generate a MySolution.sln.metaproj which is able to carry the preprocess parameter

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文