MSBuild与编译器

在命令提示符下使用MSBuild和C#编译器有什么区别? 我想在不使用Visual Studio的情况下手动构建我的解决方案/项目,我想学习如何使用命令行工具。

通过C#编译器你的意思是csc.exe

如果这就是你的意思,那么cscMSBuild是完全不同的应用程序。

MSBuild使用解决方案和项目文件来构建项目中的文件。 MSBuild使用csc.exe作为其实际编译器,但根据您的解决方案和项目文件(这些文件实际上是xml文件)知道在何处查找程序集,引用等。

使用csc.exe ,必须手动提供文件,引用等的路径,从而使编译变得更加困难。

MSDN MSBuild: http : //msdn.microsoft.com/en-us/library/dd393574.aspx

MSDN CSC: http : //msdn.microsoft.com/en-us/library/78f4aasd.aspx

MSBuild实际上使用csc.exe ,因此您可以在命令行中使用它们。 MSBuild更容易使用。

MSBuild参考(MSDN)

使用csc.exe进行命令行构建

C#您的代码首先编译为IL代码,然后JIT编译器将您的代码编译为CPU指令。因此,所有编译器都应将您的代码编译为IL 。 那么什么是msBuild:

Microsoft Build Engine(MSBuild)是Microsoft和Visual Studio的新构建平台。 MSBuild在处理和构建软件方面完全透明,使开发人员能够在未安装Visual Studio的构建实验室环境中编排和构建产品

见 :

Visual Studio(sln)

如果您的解决方案很小并且您不需要做任何花哨的事情,您可以使用Visual Studio(sln)构建运行器。 它与Project-> Build(从VS菜单)完全相同。 此选项非常易于配置,只需点击几下,您的CI服务器就可以编译您的解决方案。

的MSBuild

如果您需要执行更多高级方案,除了简单编译之外,例如应用不同的配置文件,将转换后的值插入配置文件,部署二进制文件等,您可以选择MSBuild选项。 你会知道什么时候需要使用它,因为sln builder无法做到这一点。 此选项需要一些构建脚本语言的知识,这是一个基于任务和类似xml的语言。