Метод Main не хочет определяться

395
24 августа 2017, 18:31

P.S. Проблема решилась перезапуском Visual Studio

Только начал работать с приложением на WPF, и посмотрев, понял, что у него нету метода Main. Покопав в интернете я понял, что метод генерируется при компиляции приложения, однако есть способ добавить его ручками. В свойствах App.xaml поставил Действия при сборке на Page, и добавил в App.xaml.cs такой код:

namespace MCUpdater
{
/// <summary>
/// Логика взаимодействия для App.xaml
/// </summary>
public partial class App : Application
{
        [STAThread]
        public static void Main()
        {
        var application = new App();
        application.InitializeComponent();
        application.Run();
        }
    }
}

Однако у меня все еще висит ошибка: Программа не содержит статического метода Main, подходящего для точки входа. Почему это происходит и как это исправить?

Answer 1

Для выполнения необходимых настроек и прочих действий во время запуска приложения в WPF нужно сделать следующее:

1) Открыть файл App.xaml и добавить обработчик события Startup

<Application x:Class="MYAPP"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:CramUp"
         xmlns:view="clr-namespace:CramUp.View"
         StartupUri="MainWindow.xaml" Startup="Application_Startup">

2) Теперь в файле App.xaml.cs можно создать метод

    /// <summary>
    /// Запуск программы
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        //организуем запуск единственной копии этой программы
        bool createdNew;
        string mutName = "MyApp";
        _Mutex = new System.Threading.Mutex(true, mutName, out createdNew);
        if (!createdNew)
        {
            this.Shutdown();
        }
        //в случае возникновения неперехваченной ошибки
        DispatcherUnhandledException += App_DispatcherUnhandledException;
        //#if (!DEBUG)
        //    DispatcherUnhandledException += App_DispatcherUnhandledException;
        //#endif
    }
READ ALSO
Сохранение видео файла в фоновом режиме приложения UWP

Сохранение видео файла в фоновом режиме приложения UWP

ЗдравствуйтеЕсть простой видеоредактор, сохранение видео в файл реализовано в фоновом режиме, реализация по документации https://docs

217
Подключение к HIVE Hadoop

Подключение к HIVE Hadoop

Есть бд которая находится на сервере обращаюсь туда через браузер типа http://0000

278
c# как получить массив для ldtoken?

c# как получить массив для ldtoken?

Есть исходный код, например new int[]{123,234,345,456}, как получить это значение из il-кода?

261