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

209
您如何在命令提示符窗口中编译和执行 .cs 文件?

2
对于那些感兴趣的人:我已经编写了一个批处理文件 **CompileCS.cmd**,它允许您编译(并可选地运行)C#文件。它在内部使用csc.exe,并调用本地PC上找到的最新版本。您可以在StackOverflow上找到批处理程序'CompileCS'的链接,我在那里回答了如何获取最近安装的csc.exe。 - Matt
17个回答

2
您可以在 VS 命令提示符中构建您的类文件(以便加载所有必需的环境变量),而不是默认的 Windows 命令窗口。
要了解更多关于使用 csc.exe(编译器)进行命令行构建的信息,请参阅this article

1

一旦你编写了C#代码并保存它,你可以像执行其他代码一样使用命令提示符来执行它。

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

编译:

mcs yourfilename.cs

执行以下操作:
mono yourfilename.exe 

如果您想让您的.exe文件以不同的名称呈现,请输入以下内容:
编译方法:
mcs yourfilename.cs -out:anyname.exe 

执行:

要执行:

mono anyname.exe 

这应该会有所帮助!

1
如果您已经安装了Visual Studio,则拥有VS的开发人员命令提示符。您可以使用csc命令轻松构建程序,并在开发人员命令提示符中使用应用程序名称运行您的应用程序。
您可以按照以下方式打开开发人员命令提示符。
开始 => 开发人员命令提示符
希望这可以帮助您!

你能解释一下这实际上是如何回答问题的吗?这将如何帮助使用命令行? - d0rf47
@d0rf47 你可以使用csc命令轻松构建程序,并在开发者命令提示符中使用应用程序名称运行应用程序。在评论和投票之前,你至少读了答案吗?我想知道为什么有两个人觉得这很有帮助。 - Buddhika Chathuranga
当然我读过了,只是觉得不太有用或者不够清晰。 - d0rf47
@d0rf47 好的,谢谢您的反馈 :) - Buddhika Chathuranga

0
# 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

0

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

这是您可以找到支持C#7的C#编译器的位置,否则它将使用仅支持C#5的.NET 4编译器。


0
在Windows中搜索“Path” 选择“编辑系统环境变量..” 点击右下角的“环境变量” 在变量部分双击Path 点击新建并添加路径(您想要添加的路径) 点击好几次确定 为了让我能从命令提示符中运行csc 将“C:\Windows\Microsoft.NET\Framework\v4.0.30319”添加到路径中 然后打开命令提示符,进入我的文件所在位置,并运行以下命令: PS C:\Users\UserName\Downloads\Mouse> csc.exe Mouse.cs

-4
dotnet

这是很老的问题了。但是,如果你作为初学者提出问题来理解如何在控制台中使用编译器而不是Visual Studio CE(强烈推荐C#),你会陷入更深的.NET框架、库和SDK术语的困境。

如果像你这样的初学者看到我的答案:

1. 理解框架和SDK之间的区别。

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

3. 这个链接:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/intro

你会在学习过程中逐渐掌握其余部分。但是,我建议你使用SDK而不是框架,并且大多数情况下都使用VS。至于我,我学习C#是为了Unity和游戏开发。

此外,Google是你的好朋友。提问,保持好奇心。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接