使用 SDK Style 格式的 csproj 十分简化,但是实际上的构建过程需要用到超级多的逻辑,那么如何知道在 msbuild 所使用的构建过程有哪些,定义了那些属性。有那些 target 文件参与了这个项目构建 本文告诉大家一个方法,可以输出某个项目在 msbuild 中的完全使用到的 targets 和属性等

本文需要用到 -pp 这个命令。这个命令可以输出所有内联到此项目的构建过程的文件,以及将构建过程用到的指令输出到文件中。可以通过这个命令了解构建此项目所用到的导入的文件。使用这个命令将不会构建项目

这个命令添加可以参数,参数是输出文件,如果没有参数,就输出控制台

进入某个项目,输入下面命令就可以输出在 msbuild 视角的整个构建用到的内容

dotnet msbuild -pp:FullProject.xml

输入上面命令,将会输出 FullProject.xml 文件

这个文件的内容很多,大概如下

可以加上平台,只输出某个平台下使用的构建过程

dotnet msbuild -p:TargetFramework=netcoreapp2.0 -pp:FullProject.xml

本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/Roslyn-%E5%A6%82%E4%BD%95%E4%BA%86%E8%A7%A3%E6%9F%90%E4%B8%AA%E9%A1%B9%E7%9B%AE%E5%9C%A8-msbuild-%E4%B8%AD%E6%89%80%E6%9C%89%E7%94%A8%E5%88%B0%E7%9A%84%E5%B1%9E%E6%80%A7%E4%BB%A5%E5%8F%8A%E6%9E%84%E5%BB%BA%E8%BF%87%E7%A8%8B.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系