jason
jason

Reputation: 7164

Has more than one entry point defined error

I have the following code:

namespace WpfApplication2
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MyWindow : Window
    {
        public MyWindow()
        {
            Width = 300; Height = 200; Title = "My Program Window";
            Content = "This application handles the Startup event.";
        }
    }

    class Program
    {
        static void App_Startup(object sender, StartupEventArgs args)
        {
            MessageBox.Show("The application is starting", "Starting Message");
        }

        [STAThread]
        static void Main()
        {
            MyWindow win = new MyWindow();

            Application app = new Application();
            app.Startup += App_Startup;

            app.Run(win);
        }
    }
}

When I run this code, I get the following error:

Error 1 Program 'c:...\WpfApplication2\WpfApplication2\obj\Debug\WpfApplication2.exe' has more than one entry point defined: 'WpfApplication2.Program.Main()'. Compile with /main to specify the type that contains the entry point.

There isn't any "Program" file in my code as far as I see. How can I fix this?

Upvotes: 3

Views: 10455

Answers (4)

Maxence
Maxence

Reputation: 13296

Check that the build action on your App.xaml file is set to Page instead of ApplicationDefinition.

Upvotes: 0

bgh
bgh

Reputation: 2120

You might be missing the <StartupObject> element in your project's .csproj file, eg.

<PropertyGroup>
  ...
  <StartupObject>WpfApplication2.Program</StartupObject>
</PropertyGroup>

Upvotes: 0

ALi
ALi

Reputation: 1

In order to solve this error, don't change the name of the .cs file when creating new code.

If you want a new name for your .cs file then you have to delete everything in the folder where your project is i.e., the fragments of files (bin, obj folders, etc.).

Upvotes: 0

pushpraj
pushpraj

Reputation: 13669

You have two primary options to implement on start activities:

Event handlers

File App.xaml

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

Define Startup="Application_Startup" and handle in file App.xaml.cs:

    private void Application_Startup(object sender, StartupEventArgs e)
    {
        // On start stuff here
    }

Override method

File App.xaml.cs

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        // On start stuff here
        base.OnStartup(e);

        // Or here, where you find it more appropriate
    }
}

Upvotes: 5

Related Questions