2010-08-06 131 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