如何从命令提示符窗口编译和执行 .cs 文件?
17 回答
CSC.exe 是 .NET Framework 中包含的 CSharp 编译器,可用于从命令提示符进行编译。如果使用“/target:exe”,则输出可以是可执行文件“.exe”,也可以是 DLL;如果您使用 /target:library,则 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 上的这篇文章更详细地介绍了命令行编译器的选项。您可以嵌入资源、设置图标、签署程序集——您可以在 Visual Studio 中执行的所有操作。
如果您安装了 Visual Studio,请在“开始菜单”中;在 Visual Studio 工具下,您可以打开“Visual Studio 命令提示符”,它将设置命令行编译所需的所有环境和路径变量。
虽然知道这一点非常方便,但您应该将它与某种构建工具的知识结合起来,例如NAnt、MSBuild、FinalBuilder等。这些工具提供了一个完整的构建环境,而不仅仅是基本的编译器。
在 Mac 上
在 Mac 上,语法类似,只有 C sharp Compiler 被命名为csc
:
$ csc /target:exe /out:MyApplication.exe MyApplication.cs ...
然后运行它:
$ mono MyApplication.exe
编译 C# 程序的另一种方法(不使用 Visual Studio 或不安装它) 是在环境变量中创建一个用户变量,即“PATH”。
在此变量中复制以下路径:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319"
或取决于您的 PC 具有哪个 .NET。
因此,您不必每次编译代码时都提及整个路径。只需使用
“C:\Users\UserName\Desktop>csc [选项] 文件名.cs”
或者你的代码路径在哪里。
现在你可以走了。
您可以编译 C# 程序:
c: > csc Hello.cs
你可以运行程序
c: > 你好
对于最新版本,首先打开一个 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!
以下是如何使用独立的 C# 7.0 编译器安装 MSBuild,该编译器不再捆绑在最新的 .Net Framework 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不支持在没有预配置项目的情况下编译单个源文件。
LinqPad 是测试一些 C# 代码的快速方法,而且它是免费的。
您可以在 VS 命令提示符下构建类文件(以便加载所有必需的环境变量),而不是默认的 Windows 命令窗口。
要了解有关使用 csc.exe(编译器)构建命令行的更多信息,请参阅本文。
添加到路径
C:\Windows\Microsoft.NET\Framework\v3.5
编译:
csc file.cs
执行:
file
一旦你编写了 c# 代码并保存它。您可以像其他代码一样使用命令提示符来执行它。
在命令提示符中输入文件所在的目录并键入
编译:
mcs yourfilename.cs
执行:
mono yourfilename.exe
如果您希望您的 .exe 文件具有不同的名称,请键入
编译:
mcs yourfilename.cs -out:anyname.exe
执行:
mono anyname.exe
这应该有帮助!
在 Windows 系统中,csc <filname>.cs
当当前目录位于 Microsoft Visual Studio\<Year>\<Version> 时,在命令提示符中使用该命令
有两种方法:
使用命令提示符:
- 开始 --> 命令提示符
- 使用以下命令将目录更改为 Visual Studio 文件夹:cd C:\Program Files (x86)\Microsoft Visual Studio\2017\ <Version>
- 使用命令:csc /.cs
使用开发人员命令提示符:
开始 --> VS 2017 的开发人员命令提示符(这里的目录已经设置为 Visual Studio 文件夹)
使用命令:csc /.cs
希望能帮助到你!
如果你已经安装了 Visual Studio,那么你就有了 VS 的开发者命令提示符。您可以使用命令轻松构建您的程序csc
,并在开发人员命令提示符中使用应用程序的名称运行您的应用程序。
您可以打开开发人员命令提示符,如下所示。
开始 => VS 的开发人员命令提示符
希望这可以帮助!
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn
在这里您可以找到支持 c#7 的 c# 编译器,否则它将使用仅支持 c# 5 的 .net 4 编译器
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。
3.这个:https ://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro
你会在路上捡起剩下的。但我建议不要使用框架,而是使用 SDK 并且主要坚持使用 VS。至于我,我学习 C# 是为了统一,主要是游戏开发。
谷歌也是你的朋友。提问,保持好奇。
如果您设置了正确的系统和环境变量并且您的路径配置正确,我找到了一种简单的方法来执行此操作。
你只需要在项目的目录下运行
dotnet new console
--> 这将生成所需的文件,例如 .csproj。它还会生成一个 Program.cs 文件,它会自动将其用作入口点,如果您有其他文件使用静态 Main 方法,则可以删除此文件,它应该会自动找到 Main 入口点。
那么你需要做的就是运行
dotnet run
它应该自动编译和运行
这就是我如何设法让我的项目使用 gitbash 作为我的终端在 vs 代码中工作。我还安装了 VS 2019,我使用了 .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