none
El programa no contiene ningún método 'Main' estático adecuado para un punto de entrada

    Pregunta

  • Hola, qué tal, el caso es que he dividido mi solución en varios subproyectos, un proyecto para mi aplicación, otra para la capa de negocio, la capa de presentación que está en WPF, la capa de acceso a datos y otro proyecto para pruebas unitarias. El caso es qe todas compilan por separado, pero al compilar la solución me aparece este mensaje:

    "El programa X no contiene ningún método 'Main' estático adecuado para un punto de entrada"

    El programa principal contiene un archivo App.xaml que contiene lo siguiente:

     

    <Application x:Class="Aplicacion.App"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Startup="Application_Startup">
      <Application.Resources>
        
      </Application.Resources>
    </Application>

    y el App.xaml.cs lo tengo así:

     

    using System.Windows;
    using Aplicacion.Presenta;
    
    namespace Aplicacion
    {
      /// <summary>
      /// Lógica de interacción para App.xaml
      /// </summary>
      public partial class App : Application
      {
        private void Application_Startup(object sender, StartupEventArgs e) {
          Current.MainWindow = new WVentanaPrincipal();
          Current.MainWindow.Show();
        }
      }
    }
    ¿Cómo hago para que me compile todo?

    Muchas gracias.

    sábado, 22 de mayo de 2010 10:26

Respuestas

  • Hola, pues ya he encontrado el fallo. El problema lo tenía en el archivo .csproj del proyecto principal de la aplicación, que en lugar de contener algo como esto:

    <ApplicationDefinition Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </ApplicationDefinition>

    tenía algo así:

    <Page Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    Por eso no me encontraba el punto de inicio del programa, lo he descubierto comprobando con otros proyectos que ya había hecho.

     

    martes, 25 de mayo de 2010 18:53

Todas las respuestas

  • hola

    imagino estas intentando ahcer algo como lo explicado aqui


    lo unico es que has definido como private al metodo Application_Startup

    private void Application_Startup(object sender, StartupEventArgs e) {

    prueba de cambiarlo

    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 22 de mayo de 2010 19:49
  • Hola, gracias por la respuesta. He hecho como en el ejemplo, le he quitado el private e incluso he declarado el método como público y me sigue dando el mismo mensaje de error, que el programa no contiene ningún método 'Main' estátido adecuado para un punto de entrada.
    domingo, 23 de mayo de 2010 7:28
  • hola

    pero esta clase App, donde la estas creando ?

    esta en tu proyecto de WPF, o sea donde defines los xaml que arman las pantallas, o lo tienes en una clase separada en otro proyecto distintos, por ahi del tipo class library ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 23 de mayo de 2010 14:47
  • Hola, pues esta clase app está en otro proyecto de tipo Aplicación para windows, y los xaml de las ventanas están en otro proyecto del tipo biblioteca de clases, todos dentro de la misma solución, claro.

    Un  saludo.

    domingo, 23 de mayo de 2010 16:47
  • hola

    la verdad nunca intente definir un metodo de aranque de la aplciacion definido desde otro proyecto

    lo que si hice fue definirlo en el mismo e invocar un formd e otro, pero no poner el Main o Application_Startup en otro distinto al proyecto definido somo startup

    entre los proyectos has establecidog la referencia

    Proyects reference

    si pones el Application_Startup definiendo la clase local al proyecto de WPF funciona ?

    lo pregunto porque por ahi podrias definirlo local y luego instancia dentro de este al form del otro proyecto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 23 de mayo de 2010 18:21
  • Hola, pues ya he encontrado el fallo. El problema lo tenía en el archivo .csproj del proyecto principal de la aplicación, que en lugar de contener algo como esto:

    <ApplicationDefinition Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </ApplicationDefinition>

    tenía algo así:

    <Page Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </Page>
    Por eso no me encontraba el punto de inicio del programa, lo he descubierto comprobando con otros proyectos que ya había hecho.

     

    martes, 25 de mayo de 2010 18:53
  • Pues mira yo estoy trabajando un proyecto también dividido en varias capas, una de conexión a la base de datos, otra se servicios y otra para el cliente, el problema se presento cuando cambien el tipo de proyecto de conexión a la base de datos, de biblioteca de clases a aplicación de consola.  si quieres puedes verificar como esta iniciando tu proyecto ademas estas capas normalmente son solo bibliotecas de clases, esto con el fin de ser una capa que tenga contacto con la BD y este lejos del cliente.

     

    Espero haber sido de ayuda en algo.

    martes, 18 de octubre de 2011 3:21