Не содержит статический метод main, подходящий для точки входа - PullRequest
59 голосов
/ 07 марта 2012

Я начал организовывать свой код на сегодняшний день в отдельные файлы .cs, и чтобы методы, работающие с пользовательским интерфейсом, продолжали делать это, я создал бы код .cs под тем же пространством имен и открытым частичным именем класса, чтобы методы могут быть совместимы.

Мой заголовок выглядит так в четырех файлах, включая мой основной файл, который вызывает:

public shell()
{
InitializeComponent(); 
}

Область заголовка файлов .cs, которые работают с пользовательским интерфейсом (и, похоже, вызывают этот новый конфликт):

using System;
using System.Windows.Forms;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.IO;
using System.Data.SqlServerCe;
using System.Diagnostics;
using System.Threading;
using System.Collections.Specialized;
using System.Net;
using System.Runtime.InteropServices;
using watin = WatiN.Core;
using WatiN.Core.Native.InternetExplorer;
using System.Web; 


namespace WindowsFormsApplication1
{

    public partial class shell : Form
    {

Теперь, когда я пытаюсь отладить / просмотреть мое приложение (кстати, это приложение для Windows в Visual Studio 2010 Express), я получаю следующее сообщение об ошибке:

Не содержит статического метода main, подходящего для точки входа

Я посмотрел в свойствах приложения в Application-> Startup object, но он не предлагает мне никаких опций. Как я могу сообщить приложению начинаться с файла .cs, в котором есть мой InitializeComponent (); команда?

  • До сих пор я смотрел без решения.
  • Свойства каждого файла .cs установлены на «Компиляция».
  • Я не вижу файл App.xaml в моем обозревателе решений, но вижу файл app.config.

Я все еще очень новичок, и это моя первая попытка организации метода с кодом C #.

Ответы [ 22 ]

1 голос
/ 08 марта 2018

Для некоторых других, приезжающих сюда:

В моем случае я скопировал .csproj из примера проекта, который включал <EnableDefaultCompileItems>false</EnableDefaultCompileItems> без включения файла Program.cs. Исправлено было либо удалить EnableDefaultCompileItems, либо явно включить Program.cs в компиляцию

0 голосов
/ 20 сентября 2016

Я использую Visual Studio, и у меня также была эта проблема.Это заняло у меня некоторое время, но в моей программе это было вызвано тем, что я случайно удалил класс с именем «Программа», который генерируется автоматически.

0 голосов
/ 18 сентября 2018

Действительная запись выглядит так:

public static class ConsoleProgram
    {
        [STAThread]
        static void Main()
        {
            Console.WriteLine("Got here");
            Console.ReadLine();
        }
    }

У меня были проблемы при написании веб-приложения, но из-за ужасного времени загрузки я хотел быстро преобразовать тот же проект в консольное приложение и выполнить быстрые тесты методов без загрузки всего решения.

Моя точка входа была помещена в /App_Code/Main.cs, и мне пришлось сделать следующее:

  1. Установить проект -> Свойства -> Приложение -> Тип вывода = Консольное приложение
  2. Создание /App_Code/Main.cs
  3. Добавьте приведенный выше код (и ссылки на методы в моем проекте)
  4. Щелкните правой кнопкой мыши файл Main.cs -> Свойства -> Создать действие = Скомпилировать

После этого я могу установить выходные данные (как указано в шаге 1) для библиотеки классов, чтобы запустить веб-сайт, или для консольного приложения, чтобы перейти в режим консоли.

Почему я сделал это вместо 2 отдельных проектов?

Просто потому, что у меня были ссылки на Entity Framework и другие конкретные ссылки, которые создавали проблемы при запуске 2 отдельных проектов.

Для более простых решений я бы по-прежнему рекомендовал 2 отдельных проекта, поскольку вывод консоли представляет собой в основном тестовый код, и вы, вероятно, не хотите рисковать этим в производственном коде.

0 голосов
/ 21 апреля 2018

hellow Ваш основной класс был удален, поэтому добавьте новый класс с именем, установленным как Main.cs, и добавьте этот код в код или, если проблема в окне, та же проблема с этим

using System;
using System.Collections.Generic;
using System.Linq;
using Foundation;
using UIKit;

namespace your_PKG_name.iOS
{
       public class Application
        {
            // This is the main entry point of the application.
            static void Main(string[] args)
            {
                // if you want to use a different Application Delegate class from "AppDelegate"
                // you can specify it here.
                UIApplication.Main(args, null, "AppDelegate");

            }
        }
}
0 голосов
/ 15 марта 2018

Если вы похожи на меня, то, возможно, вы начали с библиотеки классов, а затем переключили ее на консольное приложение.Если это так, измените это ...

namespace ClassLibrary1
{
    public class Class1
    {
    }
}

На это ...

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
}
0 голосов
/ 25 февраля 2017

Проверьте, не установлен ли проект как «Startup Project»

Щелкните правой кнопкой мыши проект и выберите «Set as Startup Project» из меню.

0 голосов
/ 06 октября 2016

Для будущих читателей, которые сталкивались с той же проблемой с приложением Windows Forms, одним из решений является добавление этих строк в класс главной / начальной формы:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MyMainForm());
    }

Затем перейдите в свойства проекта> Приложение> Объект запускавыпадающий список, должен увидеть namespace.MyMainForm, выбрать его, очистить и построить решение.И это должно работать.

0 голосов
/ 09 июня 2013

Простое решение.

1.BUILD -> CLEAN PROJECT-NAME (оно очистит ваш предыдущий незавершенный билд "похоже на обновление")

2.BUILD--> BUILD PROJECT-NAME.

тогда вы можете просто запустить свой скрипт, он будет работать.Пожалуйста, найдите приложение !!

0 голосов
/ 22 июня 2019

У меня была эта ошибка, и она была решена этим решением.

--> Right click on the project

--> and select "Properties"

--> then set "Output Type" to "Class Library".
0 голосов
/ 29 марта 2016

Я тоже столкнулся с этой проблемой.Затем я понял, что выбираю консольное приложение (пакет), а не консольное приложение.

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