2012-01-03 34 views
18

Disculpe si esto es trivial, soy nuevo en Visual Studio, tengo un único proyecto en el que contiene varios archivos de clase (.cs), ¿cómo puedo ejecutar cada uno individualmente? Cada vez que voy a depurar, selecciona solo un único archivo .cs. Gracias.¿Cómo compilar y ejecutar un solo archivo de clase cs?

Editar: Viniendo de un fondo de Java usando netbeans, es posible tener un paquete con varios archivos .java en el paquete, siempre que cada uno de los archivos .java tenga un método principal que pueda compilarse y ejecutarse individualmente. ¿Hay algo como esto disponible en Visual Studio?

+1

Supongo que cada uno tiene una función 'main'? – xbonez

+2

¿Qué tipo de proyecto es este? ¿Por qué ejecutar una clase individualmente? ¿Qué estás intentando lograr? – Oded

+3

Probablemente el autor quiere hacer algunas pruebas y tiene varios archivos con un método principal – Bas

Respuesta

7

Normalmente, no puede compilar un solo archivo CS a menos que lo agregue a un proyecto separado. Visual Studio crea automáticamente todos los archivos CS en un proyecto.

Si sólo desea construir un único archivo que puede cambiar esto en la configuración del archivo:

Haga clic en los archivos que no desea construir, mirar a la ventana de propiedades (F4).

enter image description here

Conjunto de Acción de generación en Ninguno para desactivar la construcción de ese archivo.

+2

Pensé que estaba hablando de "ejecutar" los archivos que no los estaban construyendo. – Ray

0

Program.cs contiene qué ejecutar cuando se ejecuta el proyecto.

Application.Run(new Form1()); 

Puede usarlo para seleccionar cualquier clase que se vaya a ejecutar.

Si se trata de una aplicación de consola, solo se ejecuta la clase con el punto de entrada.

static void Main(string[] args) 
{ 
} 
8

Si desea seleccionar el método principal se ejecute, puede seleccionar que, en virtud de Project -> PropertiesStartup Object. Hay varios requisitos que deben cumplirse (como ser estáticos) y solo puede seleccionar uno a la vez.

Si desea llamar al método principal en múltiples clases estáticas, deberá crear uno principal que llame a los otros. Podría complicarse y usar la reflexión para buscar las clases en su proyecto, pero es mucho más trabajo que simplemente llamarlas estáticamente.

+2

¿Por qué el voto a favor? – Ray

+0

¡Perfecto! Ayuda a resolver mi problema de cambiar una clase de biblioteca a una aplicación de consola. –

0

Solo se ejecutará primero esa clase que contenga el método "Main estático". Agregue un método Main() a la clase que desea ejecutar primero.

Revertir si necesita más ayuda. Espero que esto ayude.

1

Puedes añadir el método static main(string[] args) a la clase que desea ejecutar o hacer y objeto de la misma clase en program.cs y llamar a los métodos que necesita en el main() de program.cs

2

A medida que la OP provenía de un ambiente de Java , Creo que vale la pena responder a esta pregunta de una manera ligeramente diferente.

Entiendo que el OP tiene algunas clases de C# diferentes con sus métodos correspondientes static Main() (cada una de estas clases probablemente sea una forma diferente de arrancar el código de la aplicación) y quiere cambiar fácilmente entre ellas al iniciar la aplicación en Visual Estudio. Entonces, la respuesta corta es: no hay una manera fácil :(

En primer lugar, no puede iniciar un proyecto a través de un método static Main() si su tipo de salida es una "Biblioteca de clases". Aplicación de consola "o" Aplicación de Windows "para poder iniciarlo. Esto es completamente diferente del mundo de Java donde simplemente puede hacer clic derecho en cualquier clase con un método static main(), luego hacer clic en" Ejecutar como ... "," Java Aplicación ". En Java, no existe tal concepto de proyecto/módulo de biblioteca, por lo que no importa si el proyecto que contiene esta clase con static main() es una" biblioteca "o no.

En segundo lugar, la forma más fácil Encontré es (muy similar a la respuesta de Ray):

  1. Haga clic derecho en el proyecto, a continuación, en "Propiedades"
  2. En "Aplicación", asegúrese de que el tipo de salida no es "biblioteca de clases"
  3. Cambio "Objeto inicial" a la clase cuyos static Main() es el que desea ejecutar
  4. Haga clic derecho en su proyecto, "depuración", "Iniciar nueva instancia"

por desgracia, no veo ninguna manera de ahorrar en VS diferentes configuraciones de lanzamiento para el mismo proyecto utilizando diferentes clases, para que pueda cambiar fácilmente entre ellos. AFAICS, la única forma de lograrlo es crear nuevos proyectos dentro de la solución y configurarlos para lanzar las diferentes clases principales.

Cuestiones relacionadas