我知道Visual Studio内部使用一个名为msbuild的工具来编译C#代码。 msbuild是否在内部使用csc.exe(随.net框架提供)来编译代码?或者Visual Studio是否有自己的编译器?
更新(与原始问题略有偏差): Powershell使用.net类型。那么powershell也会针对csc.exe吗?如果是,那是不是意味着powershell不是纯脚本?
答案 0 :(得分:6)
MSBuild使用csc.exe作为其实际编译器,它使用解决方案和项目文件来构建项目。
还要注意csc是.Net
框架的一部分。
使用Visual Studio IDE构建项目时,可以 在中显示csc命令及其关联的编译器选项 输出窗口。要显示此信息,请按照中的说明操作 如何:查看,保存和配置构建日志文件以更改 日志数据的详细级别为“正常”或“详细”。在你之后 重建项目,在“输出”窗口中搜索csc以查找 调用C#编译器。
答案 1 :(得分:4)
Microsoft.CSharp.targets中定义的CoreCompile
任务使用CSC task来执行编译。
答案 2 :(得分:0)
MsBuild本质上是一个构建调度框架,是编译器管理构建的所有方面的补充。每种受支持的语言都有自己的MsBuild逻辑套件,用于指示构建项目时发生的情况。对于C#项目,将从CSharp.Targets调用编译器逻辑,而构建数据库项目则需要使用随该插件安装的目标文件。