MSBuild与编译器

时间:2014-01-10 05:48:18

标签: c# compiler-construction msbuild

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

3 个答案:

答案 0 :(得分:31)

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

答案 1 :(得分:4)

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

MSBuild Reference (MSDN)

Command-line Building with csc.exe

答案 2 :(得分:0)

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

  

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

See

Visual Studio(sln)

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

<强>的MSBuild

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