msbuild是否附带编译器?

时间:2014-08-24 19:26:30

标签: .net msbuild csc

我知道Visual Studio内部使用一个名为msbuild的工具来编译C#代码。 msbuild是否在内部使用csc.exe(随.net框架提供)来编译代码?或者Visual Studio是否有自己的编译器?

更新(与原始问题略有偏差): Powershell使用.net类型。那么powershell也会针对csc.exe吗?如果是,那是不是意味着powershell不是纯脚本?

3 个答案:

答案 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调用编译器逻辑,而构建数据库项目则需要使用随该插件安装的目标文件。