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

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

310467 次浏览

中包含的 CSharp 编译器。NET 框架,并可用于从命令提示符进行编译。输出可以是一个可执行文件”。如果使用“/target: exe”或 DLL; 如果使用/target: library,则 CSC.exe 位于。NETFramework 目录,

例如.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 的本文 更详细地介绍了命令行编译器的选项。您可以嵌入资源、设置图标、为程序集签名——这是您在 VisualStudio 中可以做的所有事情。

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

虽然了解这一点非常方便,但是您应该将其与某种构建工具(如 南特MSBuild终极建造者等)的知识结合起来。这些工具提供了一个完整的构建环境,而不仅仅是基本的编译器。

在 Mac 上

在 Mac 上,语法是相似的,只有 C 急转弯编译器被命名为 csc:

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

然后运行它:

$ mono MyApplication.exe

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

要了解有关使用 csc.exe (编译器)构建命令行的更多信息,请参见 这篇文章

虽然知道如何在命令行中构建是一件好事,但是对于大多数工作来说,使用 IDE 可能更容易。C # 快速版是免费的,而且物有所值;-p

或者,像 脾气暴躁这样的东西可以用来运行 C # 代码的片段。

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

最后,许多项目是使用构建脚本工具构建的; 如 MSBuild南特等。

LinqPad 是测试一些 C # 代码的快速方法,而且它是免费的。

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

复制此变量中的下列路径:

“ C: Windows Microsoft.NET Framework v4.0.30319”

或者取决于你的电脑有哪个.NET。

因此,您不必在每次编译代码时都提到整个路径。 简单使用

“ C: Users UserName Desktop > csc [ options ] filename.cs”

或者代码路径所在的任何地方。

现在你可以走了。

你可以编译一个 C # 程序:

C: > csc Hello.cs

你可以运行程序

你好

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

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

编译:

mcs yourfilename.cs

执行:

mono yourfilename.exe

如果希望. exe 文件名不同,请键入

编译:

mcs yourfilename.cs -out:anyname.exe

执行:

mono anyname.exe

这个应该有用!

对于最新版本,首先打开 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

一个示例 HelloWorldd.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!

下面介绍如何使用独立的 C # 7.0编译器安装 MSBuild,该编译器在最新版本中不再绑定。网络架构4.7:

有没有可能在没有 Visual Studio 的情况下安装一个 C # 编译器?

那就跑吧

"C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn\csc.exe" MyApplication.cs

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

还要注意,.Net Core不支持编译单个源文件没有预先配置的项目。

在 Windows 系统中,在命令提示符中使用命令 csc <filname>.cs,而工作目录在 Microsoft Visual Studio & lt; Year > & lt; Version > 中

有两种方式:

使用命令提示符:

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

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

  1. 开始—— > VS 2017的开发者命令提示符 (此处目录已设置为 VisualStudio 文件夹)

  2. 使用命令: csc/. cs

如果您已经安装了 Visual Studio,那么您就拥有了针对 VS 的开发者命令提示符。您可以使用 csc命令轻松地构建您的程序,并在开发者命令提示符中使用应用程序的名称运行您的应用程序。

您可以打开 Developer 命令提示符,如下所示。

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

希望这个能帮上忙!

添加到路径

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

编译:

csc file.cs

执行:

file

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

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

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

编译和执行一个文件的一行程序:

(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#");
}
}
dotnet

这太古老了。但是因为这是你作为一个初学者的结局,当你问一些问题来理解如何在没有 Visual Studio CE 的编译器的控制台中使用 C # 像 C 或 C + + (如果你还没有使用它,强烈推荐使用 C #) ,你最终会变得更加困惑。NET 框架、库和 SDK。 如果像你这样的人无意中发现了我作为一个初学者的答案:

1. 了解 Framework 和 SDK 的区别。

2. 理解什么是 C # ,什么是.NET。

Https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro

剩下的你会在路上收拾好的。 但是我建议不要使用框架,而是使用 SDK,并且大多数时候坚持使用 VS。对于我来说,我学习了 C # 来实现统一,主要是游戏开发。

也是你的朋友。问问题,保持好奇心。

我找到了一个简单的方法来做到这一点,如果您有正确的系统和环境变量设置和您的路径正确配置。

您只需要在项目的目录中运行

这将生成所需的文件,如。Csproj.它还将生成一个 Program.cs 文件,它将自动使用该文件作为入口点,如果您有其他文件与您的静态 Main 方法,您可以删除这个文件,它应该会自动找到 Main 入口点。

那么你要做的就是逃跑 dotnet run,它应该自动编译和运行

这就是我如何使用 gitbash 作为终端让我的项目在 vs 代码中工作的方法。我还安装了 VS2019,我使用了。Net 5.0框架作为我的系统变量。这是我找到的最简单的基本控制台程序的解决方案。它还允许您将自定义导入添加到。Csproj 文件

# File    : csharp.ps1
# Purpose : Powershell Script to compile a csharp console application from powershell prompt


try {
# CSharp Compiler
#$csc = "C:\Windows\Microsoft.NET\Framework\v3.5\bin\csc.exe"
$csc = "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe"
# NOTE: if this path doesn't work search Framework folder for csc.exe


$ErrorActionPreference = 'Stop'


if ($args.Count -eq 0) {
write-host "`nUSAGE: csharp.ps1 (console_application.cs)"
exit 1
}


$file = $args[0];
if (-not(test-path $file)) {
throw "file doesn't exist: $file"
}
    

$cmd = "$csc /nologo  /t:exe  /out:${file}.exe $file"


write-host  -ForegroundColor Green "`nx: $cmd"
invoke-expression $cmd
}
catch {
write-host -ForegroundColor Red "`nEXCEPTION: $_"
}
finally {
write-host ""
}
// File: helloworld.cs
using System;


namespace MyProgram
{
class Program
{
public static void Main(string[] args)
{
Console.Write("Hello World...");
Console.ReadKey(true);
}
}
}
PS> .\csharp.ps1 helloworld.cs