在命令提示符下使用MSBuild和C#编译器有什么区别?我想在不使用Visual Studio的情况下手动构建我的解决方案/项目,我想学习如何使用命令行工具。
答案 0 :(得分:31)
C#编译器的意思是csc.exe
?
如果这是您的意思,那么csc
和MSBuild
是完全不同的应用程序。
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
更容易使用。
答案 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的语言。