Устранение неполадок "программа не содержит статический метод" Main ", когда она явно ... - PullRequest
46 голосов
/ 22 декабря 2008

Моя программа MS Visual C # компилировалась и работала просто отлично. Я закрываю MS Visual C #, чтобы уйти и заняться другими делами в жизни.

Я снова открываю его и (прежде чем что-либо делать) перехожу к «Опубликовать» мою программу и получаю следующее сообщение об ошибке:

Программа C: \ myprogram.exe не содержит статический метод 'Main', подходящий для точки входа

А? Да, это так ... и все это работало 15 минут назад. Конечно, я могу поверить, что случайно наткнулся на что-то или сделал что-то, прежде чем закрыл это ... но что? Как мне устранить это?

Мой файл Program.cs выглядит следующим образом:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;

namespace SimpleAIMLEditor
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            Application.Run(new mainSAEForm());
        }
    }
}

... и там есть некоторые комментарии. Других ошибок нет.

Помощь

Ответы [ 12 ]

49 голосов
/ 22 декабря 2008

Установлены ли свойства файла для компиляции?

24 голосов
/ 04 августа 2016

Я боролся с этой ошибкой только потому, что один из моих class library проектов was set acceddentaly должен быть консольным приложением

, поэтому убедитесь, что ваши проекты библиотеки классов - это библиотека классов в Типе вывода

enter image description here

20 голосов
/ 15 мая 2011

Ок, я тоже смотрел на эту проблему. И в моем случае решения были слишком просты. Я добавил новый пустой проект в решение. Недавно добавленный проект автоматически устанавливается как консольное приложение. Но поскольку добавленный проект был «пустым», в этом новом проекте не было никакого Program.cs. (Как и ожидалось)

Все, что мне нужно было сделать, это изменить тип вывода свойств проекта на библиотеку классов

12 голосов
/ 14 апреля 2010

Если у вас есть приложение WPF или Silverlight, убедитесь, что App.xaml имеет «ApplicationDefinition» в качестве BuildAction для свойств файла.

5 голосов
/ 22 декабря 2008

Проверьте свойства вашего проекта. На вкладке «Приложение» выберите класс Program в качестве объекта автозагрузки:

alt text

4 голосов
/ 22 декабря 2008

Странно. Ваша программа компилируется и запускается успешно и дает сбой только при «Публикации», или теперь она происходит при каждой компиляции?

Кроме того, возможно, вы изменили свойства файла 'Build Action на что-то отличное от Compile?

2 голосов
/ 08 мая 2013

Для меня такая же ошибка произошла, потому что я переименовал пространство имен класса Program.
Поле «Объект запуска» во вкладка «Приложение» проекта все еще ссылается на старое пространство имен. Выбор нового объекта автозагрузки решил проблему, а также удалил устаревшую запись из этого списка.
Вы также можете обновить «Пространство имен по умолчанию» в той же вкладке «Приложение».

1 голос
/ 27 июля 2018

У меня была эта проблема, потому что я не использовал последнюю версию C # (C # 7.3 на момент написания этой статьи), и мне пришлось изменить приведенный ниже internal модификатор доступа на public.

internal class Program
 {
    public static void Main(string[] args)
    {
        //My Code
    }
  }

или измените .csproj, чтобы использовать последнюю версию C # (этот способ означал, что я мог бы оставить вышеупомянутый класс как internal):

<PropertyGroup>
    <LangVersion>latest</LangVersion>
    <NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
1 голос
/ 13 марта 2017

Важно, чтобы метод Main был помещен в класс, правильно настроенный в Visual Studio, как объект запуска:

  • Щелкните правой кнопкой мыши свой проект в проводнике проекта; выберите «Свойства ...»
  • В диалоге свойств выберите вкладку «Приложение»
  • На вкладке приложения выберите SimpleAIMLEditor.Program из раскрывающегося списка для запуска объекта

Теперь снова запустите ваше приложение. Ошибка исчезнет.

1 голос
/ 09 февраля 2009

Я обнаружил, что файл Program.cs не является частью решения. Я добавил существующий элемент и добавил файл (Program.cs) обратно в решение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...