MSBUILD如何调用CSC.exe

本文关键字:CSC exe 调用 何调用 MSBUILD | 更新日期: 2023-09-27 18:22:49

我想了解msbuild.exe如何执行C#应用程序。

当我在谷歌上搜索时,我知道了csc.exe,PE文件,JIT,IL文件。msbuild.exe内部调用csc.exe编译C#应用程序。所以我在reflector中打开了csc.exe。但是msbuild没有调用csc.exe。那么msbuild是如何调用csc.exe的呢?

MSBUILD如何调用CSC.exe

尽管EXE确实是库(与DLL一样,EXE是PE文件),但它们几乎总是通过使用命令行参数创建单独的进程来调用。命令行参数传递给EXE的"main"函数,通常作为字符串数组。你可以在Reflector中找到csc的主要功能。

但是,您可能想知道msbuild为特定的构建传递给csc的是什么。在这种情况下,只需使用msbuild的详细开关:

msbuild MyProject.csproj /target:rebuild /verbosity:diag

请参阅使用MSBuild获取生成日志。

对csc.exe的调用包含在accord.targets1脚本中
MSBuild.exe本身不知道要针对哪种语言编译器(c#、vb…)。这取决于解决方案/项目及其参考。

对csc.exe的实际调用应位于.NET Framework文件夹中的Microsoft.MSBuild.Tasks.dll中。

1在C#的情况下,它是Microsoft.CSharp.targets