En mi proyecto estoy teniendo más de dos Principal método con la misma firma. Uno es un winForm, y el otro es de la clase Console.

Cómo establecer uno de ellos como punto de entrada.

Me declaró [STAThread] antes de que uno de los principales método para establecer el punto de entrada, pero no está funcionando?

Estoy usando Visual Studio express 2010

  • [STAThread] atributo no es utilizado para el punto de entrada.
InformationsquelleAutor PawanS | 2010-12-10

8 Comentarios

  1. 33

    Ir a las propiedades del proyecto haciendo clic derecho en el proyecto en el explorador de soluciones y haga clic en propiedades. En la primera pestaña, usted verá una lista desplegable para el punto de entrada. Seleccione el método main.

    • No estoy recibiendo ninguna lista desplegable. (No Establecido) está solo allí. Si todos son del mismo tipo(ya sea de windows o de la Consola) entonces tenemos que. Pero mi proyecto lo tanto, de las formas y de la consola
    • Es con la etiqueta «Inicio». Aquí está una captura de pantalla a partir de una nueva aplicación de consola. screencast.com/t/27JwRJ0F
    • Ya gracias entiendo que Ahora, Después de volver a generar la solución que me dieron la Lista Desplegable. Pero «tipo de Salida» tengo que poner. Sería un tipo de consola o aplicaciones de windows.
  2. 8

    STAThread no establece el punto de entrada – obliga a que el tiempo de ejecución del uso de un Apartamento de un Único Subproceso para el subproceso que ejecuta Principal.

    Como Josh dice, usted necesita establecer el Objeto de Inicio en las propiedades del proyecto. Si eso no se ve en VS Express, usted puede necesitar a la fuerza para mostrar avanzadas construir propiedades: Abra Herramientas\Opciones y marque la opción «Mostrar opciones avanzadas de configuración de compilación» en Proyectos y Soluciones.

    Nota de que la aplicación ya sea tiene que ser una aplicación de consola, o una aplicación WinForms. Sólo puede ser construido como una (por configuración, de todos modos). Ya sea que usted termina con una consola que muestra cuando se inicia es como una aplicación WinForms, o no hay consola que muestra cuando se inicia como una aplicación de consola.

    Han considerado que poner la mayor parte de la lógica en una biblioteca de clases, y luego la creación de dos de contenedor de aplicaciones – uno de WinForms y una consola que acaba de mostrar la correspondiente interfaz de usuario y, a continuación, el delegado de la clase a la biblioteca?

    • U r a la derecha. Tengo la solución, una vez cualquiera de las formas o de la consola sólo se construye. No, yo no lo he probado ur Idea. U puede ser en poco más de detalles. Thanx
    • Lo que más detalles se necesita? El uso de tres proyectos: uno en la biblioteca de clases, uno de WinForms, una consola. Agregar las referencias de cada una de la consola de la aplicación y la aplicación WinForms a la biblioteca de clase, que es donde se coloca la mayor parte de su lógica.
    • En realidad se puede construir como un EXE de Windows, a continuación, mostrar una consola de forma condicional (basado en un parámetro de línea de comando o algo) utilizando AllocConsole pero es un poco involucrados y tiene algunos efectos secundarios indeseables. Si estás interesado, consulta este post. stackoverflow.com/questions/2348195/…
    • Sí, yo estaba tratando de mantener las cosas relativamente simple 🙂
    • .. Tengo ur punto, ur manera es mucho mejor.
  3. 4

    Si el programa tiene dos principales método compilador obtener confution para ejecutar un programa de c# poner la clase principal de dar

    public Class one
    
    {
    public static void main()
    {
    System.console.writeline("One");
    }
    
    public Class two
    {
    public static void main()
    {
    System.console.writeline("Two");
    }
    }

    de ejecución de C# en la consola de

    CSC Multimain.cs /principales:uno

    • De salida
      Uno

    CSC Multimain.cs /principal:dos

    • De salida
      Dos
    • No funciona.
    • buena sugerencia para ejecutar manualmente un archivo de c# usando VS consola cmd. Creo que el OP quiere usar en el VS de sí mismo.
  4. 1

    Se puede colocar un método Main en cada clase se declara. Algunos de los programadores de tomar ventaja de esto para construir una pequeña aplicación de prueba en cada clase que declarar.

    Sin embargo, si se declaran más de un Principal método de entre las clases de su proyecto, deberá indicar a la IDE de que a uno le gustaría ser la aplicación del punto de entrada. Para ello:

    1. Con el proyecto abierto en Visual Studio, seleccione Proyecto >
      [Nombre de proyecto] Propiedades
      … (donde [nombre de proyecto] es el nombre de su
      proyecto).
    2. Seleccione la clase que contiene el método Main que debe ser la entrada
      desde el punto de objeto de Inicio cuadro de lista.
  5. 0

    Usted puede poner más de un método main en un solo programa, pero el programa con un método main serán compilados en un tiempo, por ejemplo :
    Copiar y pegar este código en el editor y el cambio de nombre de la Liberación en primera línea y ver el cambio

    #define Release 
    using System;
    class Program
    {  
    #if Release==true
        public static void Main(string[] args) //for enemy
        {     
            Console.WriteLine("go to  hell");
            Console.ReadLine();
        }
    
    
    #elif Release==false
        static void Main(string[] args) //for friend
        {    
    
             Console.WriteLine("hello ");
    
            Console.ReadLine();
        }
    
    #endif 
    }
  6. 0

    también se puede hacer por este camino, pero no sé cómo establecer la principal método será el punto de entrada

     public static void Main(string args)
        {
            Console.WriteLine("this is second main method");
        }
    
       public static void Main(string[] args)
        {
            Program.Main("second main method");
       }
  7. 0

    Este problema podría ser resuelto fácilmente por los pasos aquí
    1. Abra la solución
    2 división de las dos clases en distintos archivos de clase
    3. haga clic en el «Proyecto» de la pestaña de la barra de menú principal
    4. Mover el cursor a la Propiedad
    5. Seleccione el nombre de la clase que quería correr para «Referencia de Ruta»
    6. Compilar el proyecto, el error será cabalgar.

  8. -1

    Yo creo que esta no va a funcionar. Ni siquiera se compile y se queja de que el proyecto tiene dos métodos principales. Sólo debe existir una public static main método en el proyecto. Tienes que renombrar/eliminar el segundo.

    Por el camino exactamente ¿por qué te gusta tanto de ellos?

    • Eso es correcto, por dos métodos principales VS siente la ambigüedad, que es el punto de entrada. Y esa fue mi ques Cómo establecer particular punto de entrada? Un proyecto que optar usuario para ir a recuperar los datos en la consola o en windows
    • No es cierto. Usted puede tener dos métodos principales en un solo proyecto.
    • ya digo que puede tener… pero cual es el punto de entrada es imp.
    • -1, porque es perfectamente posible. Yo lo hago todo el tiempo para charlas – tengo un punto de entrada que se encuentra la de los demás.
    • Yo no sabía que. Gracias por la corrección.
    • Skeet: estoy bien con el hecho de tener varios. Pero, ¿cómo ir sobre la búsqueda de los demás? Sólo intrigado…
    • Busco estática Principales métodos que no tienen parámetros o un String[] parámetro. El código está en MiscUtil como ApplicationChooser – consulte pobox.com/~skeet/csharp/miscutil

Dejar respuesta

Please enter your comment!
Please enter your name here