2010-08-06 245 views
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!"); 
    } 
} 

然后我进入命令提示符并指向文件的目录。我输入csc.exe Welcome.cs和得到这个错误信息:

csc.exe is not recognized as internal or external command 

我使用Visual Studio 2008

我试图移动CSC.EXE到Windows目录下,现在我收到此错误:

fatal error cs2018: unable to find messages file 'cscompui.dll' 

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

+5

仅供参考......你不应该移动CSC .exe到Windows文件夹。它有太多的依赖关系,它将无法找到。 – David 2010-08-06 16:01:14

回答

32

csc.exe不在您的路径中。尝试完全限定它:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe 

(与你使用当然任何框架,取代3.5。)

注意,Visual Studio是不被用在这里。不管你使用什么版本,因为你从命令行编译时没有使用它。命令行编译器是框架本身的一部分。

+11

或使用Microsoft VS 2010 \ VS工具中的开始菜单中的Visual Studio命令提示符项目 – Gishu 2010-08-06 15:59:09

+2

@Gishu:这是另一种可行的方式,当然。这个有多个答案。不过,这对他来说可能是个好消息。特别是如果他曾经尝试在批处理文件中编写脚本的编译脚本。或者如果他想在没有Visual Studio的机器上编译。 – David 2010-08-06 16:00:39

+9

此外,您可以使用命令行将该文件夹添加到路径中:'path =%path%; C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5',但仅限于会话持续时间。要将其永久添加到路径中,请修改您的环境变量(在系统控制面板下)。但所有这些可能比你想要的更多的信息。:) – JYelton 2010-08-06 16:04:20

5

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

Visual Studio 2008(作为所有版本)都带有自己的命令提示符。这基本上是cmd.exe,其中包含一些使所有Visual Studio工具可访问的脚本(将相关目录放入路径中,以便启动)。

控制台是通过开始菜单方便和应该被称为Visual Studio 2008的命令提示符(下Visual Studio工具文件夹)。

7

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

看文件夹:

C:\ ProgramData \微软\的Windows \开始菜单\程序\微软的Visual Studio 2008 \ Visual Studio工具

0

有几个选项: 1)使用“的Visual Studio 2008命令提示符“,它位于Visual Studio Tools文件夹中。这会加载正确设置路径的命令提示符,以便识别工具名称。

2)绕过这个,并从Build菜单中的“重建解决方案”。你的bin目录应该有你的exe文件。

+1

我没有BUILD菜​​单,因为它只是一个cs文件 – 2010-08-06 16:04:07

+0

您提到VS 2008在你的问题中所以我假设你使用Visual Studio 2008. – Jeremy 2010-08-06 16:38:39

3

如果您希望能够在命令行的任何地方使用CSC.exe和其他框架工具,请将这些工具添加到您的Path环境变量中。

...根据框架版本的不同,如果您安装了Windows SDK,这些可能会稍有不同。 (另外,如果你是一个64位的系统,这将是不同的,以及上)

  • C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319
  • C:\ WINDOWS \ Microsoft.NET \框架\ V3.5;
  • c:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727;
  • c:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ bin;
1

为了使编译器程序的Microsoft .NET Framework的CSC.EXE添加到您的PATH环境变量的末尾的命令行调用。

右键点击“我的电脑”选择属性。

单击“高级”选项卡。
单击“环境变量”按钮。
向下滚动“系统变量”列表到“路径”变量。
的“路径
按“结束”键
类型双击(用分号分隔开始)

;C:\Windows\Microsoft.NET\Framework\v4.0.30319 

(请务必从C:\Windows\Microsoft.NET\Framework匹配框架的正确版本)

点击 “OK
点击“OK“关闭”系统属性“窗口。

验证的变化:

打开CMD,并键入命令,如“CSC”
你会得到这样的事情

C:\Users\Jerry\Documents\coding>csc
Microsoft (R) Visual C# Compiler version 4.0.30319.33440 for Microsoft (R) .NET Framework 4.5 Copyright (C) Microsoft Corporation. All rights reserved.

+1

我发现这个答案很有用,所以我创建了一个powershell脚本来与vagrant整合,https://gist.github.com/javier-lopez/449c97c7d07ffcf44cde67992b6a3f1b – 2017-08-09 23:58:37