2010-08-06 29 views
23

estoy siguiendo este tutorial:Compilar código C# desde la línea de comandos da error

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

me pega esto en un archivo de texto, lo nombró 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!"); 
    } 
} 

Entonces entró en el símbolo del sistema y señaló el directorio del archivo. He escrito csc.exe Welcome.cs y tengo este mensaje de error:

csc.exe is not recognized as internal or external command 

Estoy utilizando Visual Studio 2008

Intenté mover csc.exe al directorio de Windows, y ahora que estoy recibiendo este error:

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

¿Cómo puedo compilar mi código C# desde la línea de comandos?

+5

FYI ... No debe mover csc .exe a la carpeta de windows. Tiene demasiadas dependencias que no podrá encontrar. – David

Respuesta

32

csc.exe no está en su camino. Trate totalmente calificarlo:

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

(3,5 reemplazar con cualquier marco que estás usando, por supuesto.)

Tenga en cuenta que Visual Studio no se está utilizando aquí. No importa qué versión de la que estás usando, porque no la estás utilizando cuando compilas desde la línea de comandos. El compilador de línea de comandos es parte del propio marco.

+11

o use el ítem del Símbolo del sistema de Visual Studio desde el Menú de Inicio en Microsoft VS 2010 \ VS Tools – Gishu

+2

@Gishu: Esa es otra manera de hacerlo, claro. Hay múltiples respuestas a esta. Sin embargo, probablemente sea bueno para él saber dónde está ese ejecutable. Especialmente si alguna vez trata de guiar la compilación de algo en un archivo por lotes. O si quiere compilar en una máquina que no tiene Visual Studio. – David

+9

Además, puede agregar esa carpeta a su ruta usando la línea de comando: 'ruta =% ruta%; C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5' pero eso es solo para la duración de la sesión. Para agregarlo permanentemente a la ruta, modifique las variables de entorno (en el panel de control del sistema). Pero todo esto puede ser más información de la que usted quería.:) – JYelton

5

Esto es muy probable porque el directorio que contiene csc.exe no está en su ruta, dado que simplemente está ejecutando el símbolo del sistema estándar de Windows.

Visual Studio 2008 (como todas las versiones) viene con su propio símbolo del sistema. Esto es esencialmente cmd.exe con algunos scripts de configuración que hacen accesibles todas las herramientas de Visual Studio (para empezar, coloca los directorios relevantes en su ruta).

La consola es fácilmente accesible a través del menú de inicio y debe decirse Visual Studio 2008 Símbolo del sistema (bajo las Visual Studio Tools carpeta).

7

Probablemente esté ejecutando cmd (símbolo del sistema de Windows) en lugar del Visual Studio Command Prompt que está disponible en la carpeta de Visual Studio Tools.

mirada en carpeta:

C: \ Datos de programa \ Microsoft \ Windows \ Menú Inicio \ Programas \ Microsoft Visual Studio 2008 \ Visual Studio Tools

0

algunas opciones: 1) utilizar el "Visual Studio 2008 Command Prompt "que está en su carpeta de Visual Studio Tools. Esto carga el símbolo del sistema con la ruta configurada correctamente para que reconozca el nombre de la herramienta.

2) omita esto y "Reconstruir la solución" desde el menú de compilación. su directorio bin debería tener su exe en él.

+1

No tengo un menú BUILD ya que es solo un archivo cs –

+0

Mencionas VS 2008 en tu pregunta así que supongo que usas Visual Studio 2008. – Jeremy

3

Si desea poder usar CSC.exe y otras herramientas de framework desde cualquier lugar de la línea de comando, vaya a agregarlas a su variable de entorno de ruta de acceso.

...Dependiendo de la versión del marco y si tiene instalado el SDK de Windows, estos pueden ser ligeramente diferentes. (También si estás en un sistema de 64 bits que sería diferente, así)

  • c: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319
  • C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5;
  • c: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727;
  • c: \ Archivos de programa \ Microsoft SDKs \ Windows \ v6.0A \ bin;
1

Para habilitar la invocación de línea de comandos del programa compilador csc.exe de Microsoft .NET Framework, Esto, unido al final de la variable de entorno PATH.

Haga clic con el botón derecho en "Mi PC" para seleccionar Propiedades.

Haga clic en la pestaña "Advanced".
Haga clic en el botón "Variable de entorno".
Desplácese por la lista de "Variables del sistema" a la variable "Ruta".
doble clic en "Ruta"
Pulse la tecla "Fin" clave
Tipo (comenzando con un separador de punto y coma)

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

(asegúrese de que coincida con la versión correcta del marco de C:\Windows\Microsoft.NET\Framework)

Haga clic en "Aceptar "
Haga clic en "Aceptar "para cerrar la ventana Propiedades del sistema.

Compruebe el cambio:

abierta CMD y escriba un comando como "CSC"
que obtendrá algo como esto

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

Encontré útil esta respuesta, así que creo un script de PowerShell para integrarlo con vagabundo, https://gist.github.com/javier-lopez/449c97c7d07ffcf44cde67992b6a3f1b –

Cuestiones relacionadas