在命令提示符中编译/执行C#源文件

时间:2009-02-16 12:20:36

标签: c# command-line compilation command-prompt

如何从命令提示符窗口编译和执行.cs文件?

16 个答案:

答案 0 :(得分:124)

CSC.exe是.NET Framework中包含的CSharp编译器,可用于从命令提示符进行编译。如果使用/ target:exe,则输出可以是可执行文件(.exe),如果使用/ target:library,则输出可以是DLL。 CSC.exe位于.NET Framework目录中, 例如对于.NET 3.5,c:\windows\Microsoft.NET\Framework\v3.5\

要运行它,首先打开命令提示符(单击开始...然后键入cmd.exe)。然后,您可能必须cd到保存源文件的目录中。

像这样运行C#编译器:

  c:\windows\Microsoft.NET\Framework\v3.5\bin\csc.exe 
            /t:exe /out:MyApplication.exe MyApplication.cs  ...

(全部在一条线上)

如果要编译多个源模块,可以将其放在同一命令行中。如果您要引用其他程序集,请使用/r:AssemblyName.dll

确保您在其中一个类中定义了一个静态Main()方法作为“入口点”。

要运行生成的EXE,只需在命令提示符下键入MyApplication,然后键入<ENTER>

MSDN上的

This article详细介绍了命令行编译器的选项。您可以嵌入资源,设置图标,签署程序集 - 您可以在Visual Studio中执行的所有操作。

如果安装了Visual Studio,则可以在“开始”菜单(在Visual Studio工具下)中打开“Visual Studio命令提示符”,该命令将为命令行编译设置所有必需的环境和路径变量。

虽然知道这一点非常方便,但您应该将其与某些构建工具的知识相结合,例如NAntMSBuildFinalBuilder等。这些工具提供了完整的功能。构建环境,而不仅仅是基本的编译器。

在Mac上

在Mac上,语法类似,只有C sharp Compiler名为csc

$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...

然后运行它:

$ mono MyApplication.exe

答案 1 :(得分:12)

您可以编译C#程序:

c:&gt; csc Hello.cs

您可以运行程序

c:&gt;你好

答案 2 :(得分:11)

编译C#程序的另一种方法(不使用Visual Studio或未安装) 是在环境变量中创建用户变量,即“PATH”。

在此变量中复制以下路径:

<强> “C:\的Windows \ Microsoft.NET \框架\ v4.0.30319”

或取决于您的PC具有哪种.NET。

因此,每次编译代码时都不必提及整个路径。 只需使用

“C:\ Users \ UserName \ Desktop&gt; csc [options] filename.cs”

或代码路径的任何位置。

现在你很高兴。

答案 3 :(得分:7)

虽然知道如何在命令行构建是一件好事,但对于大多数工作来说,使用IDE可能更容易。 C#express edition是免费的,非常有钱;-p

或者,snippy之类的东西可用于运行C#代码片段。

最后 - 注意命令行是特定于实现的;对于MS,它是csc;对于mono,它是gmcs和朋友....同样,要执行:它只是MS版本的“exename”,但通常是单音的“mono exename”。

最后,许多项目都是使用构建脚本工具构建的; MSBuildNAnt

答案 4 :(得分:4)

以下是如何使用独立的C#7.0编译器安装MSBuild,该编译器不再捆绑在最新的.Net Framework 4.7中:

Is it possible to install a C# compiler without Visual Studio?

然后运行

AndroidManifest.xml

将单个源文件编译为可执行文件。

另请注意.Net Core doesn't support compiling single source file没有预先配置的项目。

答案 5 :(得分:3)

对于最新版本,首先打开一个Powershell窗口,转到任何文件夹(例如c:\projects\)并运行以下

# Get nuget.exe command line
wget https://dist.nuget.org/win-x86-commandline/latest/nuget.exe -OutFile nuget.exe

# Download the C# Roslyn compiler (just a few megs, no need to 'install')
.\nuget.exe install Microsoft.Net.Compilers

# Compiler, meet code
.\Microsoft.Net.Compilers.1.3.2\tools\csc.exe .\HelloWorld.cs

# Run it
.\HelloWorld.exe    

示例HelloWorld.cs

using System;

public class HelloWorld {
    public static void Main() 
    {
        Console.WriteLine("Hello world!");
    }
}

您也可以尝试新的C#解释器;)

.\Microsoft.Net.Compilers.1.3.2\tools\csi.exe
> Console.WriteLine("Hello world!");
Hello world!

答案 6 :(得分:2)

您可以在VS命令提示符下构建类文件(以便加载所有必需的环境变量),而不是默认的Windows命令窗口。

要了解有关使用csc.exe(编译器)构建命令行的更多信息,请参阅this article

答案 7 :(得分:2)

LinqPad是测试一些C#代码及其免费的快速方法。

答案 8 :(得分:1)

编写c#代码并保存后。您可以使用命令提示符执行它,就像其他代码一样。

在命令提示符下,输入文件所在的目录并键入

编译:

mcs yourfilename.cs

执行:

mono yourfilename.exe 

如果您希望.exe文件与其他名称不同,请键入

编译:

mcs yourfilename.cs -out:anyname.exe 

执行:

mono anyname.exe 

这应该有帮助!

答案 9 :(得分:1)

如果已安装Visual Studio,则将具有VS的Developer Command Prompt。您可以使用csc命令轻松构建程序,并在开发人员命令提示符下使用应用程序名称运行应用程序。

您可以打开开发人员命令提示符,如下所示。

开始=> VS的开发人员命令提示符

希望这会有所帮助!

答案 10 :(得分:0)

在Windows系统中,当前目录位于Microsoft Visual Studio \ <年份> \ <版本>

中时,在命令提示符下使用命令csc <filname>.cs

有两种方法:

使用命令提示符:

  1. 开始->命令提示符
  2. 使用以下命令将目录更改为Visual Studio文件夹:cd C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ <版本>
  3. 使用命令:csc /.cs

使用开发人员命令提示符:

  1. 开始-> VS 2017开发人员命令提示符 (此处目录已设置为Visual Studio文件夹)

  2. 使用命令:csc /.cs

希望有帮助!

答案 11 :(得分:0)

添加到路径

C:\Windows\Microsoft.NET\Framework\v3.5

要编译:

csc file.cs

要执行:

file

答案 12 :(得分:0)

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn

在这里可以找到支持c#7的c#编译器,否则它将使用仅支持c#5的.net 4编译器

答案 13 :(得分:0)

Microsoft已将其编译器移至Github(当然):

https://github.com/dotnet/roslyn

答案 14 :(得分:0)

我已经编写了一个批处理文件 CompileCS.cmd ,该文件允许编译(并可选地运行)C#文件,您可以找到包括the batch program 'CompileCS' here在内的完整答案。

它的用法很简单:

CompileCS /run GetDotNetVersion.cs [arg1] ... [arg9]

将编译并运行GetDotNetVersion.cs-如果您只想编译它,则忽略/run参数。

控制台应用程序GetDotNetVersion.cs来自this answer

答案 15 :(得分:0)

PowerShell 可以立即执行 C# 代码。

一个用于编译和执行文件的 liner:

(Add-Type -Path "Program.cs" -PassThru)::Main() #'Main' is the entry point

假设你有一个这样的 .cs 文件:

using System;
public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello from C#");
    }
}