从命令行编译C#代码会出错

l--*_*''' 23 c#

我正在关注本教程:

http://www.csharp-station.com/Tutorials/Lesson01.aspx

我把它粘贴到一个文本文件中,命名为Welcome.cs:

// Namespace Declaration
using System;

// Program start class
class WelcomeCSS
{
    // Main begins program execution.
    static void Main()
    {
        // Write to console
        Console.WriteLine("Welcome to the C# Station Tutorial!"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我进入命令提示符,并指向文件的目录.我输入csc.exe Welcome.cs并收到此错误消息:

csc.exe is not recognized as internal or external command
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2008

我尝试将csc.exe移动到Windows目录,现在我收到此错误:

fatal error cs2018: unable to find messages file 'cscompui.dll'
Run Code Online (Sandbox Code Playgroud)

如何从命令行编译我的C#代码?

Dav*_*vid 31

csc.exe不在您的路径中.尝试完全符合条件:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe
Run Code Online (Sandbox Code Playgroud)

(当然,用你正在使用的任何框架替换3.5.)

请注意,此处未使用Visual Studio.无论你使用的是什么版本,因为从命令行编译时你没有使用它.命令行编译器是框架本身的一部分.

  • 或使用Microsoft VS 2010\VS Tools中"开始"菜单中的Visual Studio命令提示符项 (11认同)
  • 此外,您可以使用命令行将该文件夹添加到路径:`path =%path%; C:\ WINDOWS\Microsoft.NET\Framework\v3.5`但这仅适用于会话持续时间.要将其永久添加到路径,请修改环境变量(在系统控制面板下).但所有这些可能比你想要的更多信息.:) (9认同)
  • @Gishu:这是另一种方式,当然.这个有多个答案.但是,知道可执行文件的位置对他来说可能是件好事.特别是如果他试图编写批处理文件中的某些东西的编译脚本.或者,如果他想在没有Visual Studio的机器上编译. (2认同)
  • @JYelton:也许比他想要的更多,但是对于任何后来发现这个问题的人来说,这里肯定要注意到:) (2认同)

Pau*_*sik 7

您可能正在运行cmd(Windows命令提示符)而不是Visual Studio Tools文件夹中提供的Visual Studio命令提示符.

看看文件夹:

C:\ ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2008\Visual Studio Tools


Nol*_*rin 5

这很可能是因为包含csc.exe的目录不在您的路径中,因为您只是运行标准的Windows命令提示符.

Visual Studio 2008(所有版本)都有自己的命令提示符.这本质上是cmd.exe,其中包含一些设置脚本,可以访问所有Visual Studio工具(将相关目录放在路径中,作为开头).

可以通过"开始"菜单轻松访问控制台,该控制台应称为Visual Studio 2008命令提示符(在Visual Studio Tools文件夹下).