2012-03-07 2 views
43

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

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

public shell() 
{ 
InitializeComponent(); 
} 

Заголовок площадь .cs файлов, которые работают с UI (и, кажется, вызывает этот новый конфликт):

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 
    { 

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

Does not contain a static 'main' method suitable for an entry point

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

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

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

+9

у вас есть основной метод? –

+0

Если честно, я не вижу метод, называемый Main в любом месте моего кода. Я работаю над этим проектом уже пару месяцев. – atwellpub

+1

Вам нужен статический метод, называемый 'main', с правильной подписью. Вот как компилятор знает, как запустить вашу программу. –

ответ

2

выглядит как Windows Forms проект, который пытается использовать форму запуска, но по какой-то причине в для свойств проекта задано начало Main.

Если вы включили фреймворк приложения, вы не сможете увидеть, что Main активен (это недопустимая конфигурация).

+0

Мне было бы интересно услышать немного больше о настройке Application Framework и все, что могло бы сказать программному обеспечению, чтобы искать Main(), когда главный метод, казалось, нигде не существовал. – atwellpub

+0

Я считаю, что параметр Application Framework применим только к VB.NET. Приложения C# Forms всегда имеют «главную» как точку входа. –

72

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

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

+0

Немного перехитрить решение, я думаю. Было бы намного легче следовать решению @ eyossi. – TimWagaman

+0

Фантастический, мне очень помог, спасибо. – casaout

+0

Но вам нужно консольное приложение или библиотеку классов? Не изменяйте тип приложения, чтобы исправить ошибку; знать, что говорит вам ошибка. Консольным приложениям нужна точка входа ('static void main()'), чтобы определить, где начать выполнение кода; библиотеки классов нет - их вызывают другие библиотеки, которые уже выполняются. – KyleMit

13

Попробуйте добавить этот метод в класс и посмотреть, если вы все еще получаете ошибку:

[STAThread] 
static void Main() 
{ 
} 
4

эй я получил то же ошибку, и решение этой ошибки просто написать Капитал м вместо малого т .. например: - статическая сила Main() Я надеюсь, что это помогает ..

10

Если вы не имеете файл с именем Program.cs, просто добавьте новый класс и имя это Program.cs.

Затем вставьте этот код:

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

namespace Sales { 
    static class Program { 

     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 

} 
-2

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

1.BUILD -> ОЧИСТКА PROJECT-NAME (он очистит ваш Предыдущий не закончивших Build "это похоже на обновление")

2.BUILD -> BUILD PROJECT-NAME.

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

42

Измените тип вывода в проекте> Свойства на «Библиотека классов». По умолчанию этот параметр может быть установлен в «Консольное приложение».

+0

Это именно то, что я сделал, прекрасно работает. Если вы добавили проект «Пустой», по умолчанию используется консоль. – HowlinWulf

+0

Я сделал это простое исправление, и это сработало для меня. – jjones150

4

Если у вас есть метод Main, но все равно получите эту ошибку, убедитесь, что файл, содержащий метод Main, имеет «Build action», установленный в «Compile» и «Copy to ouput directory», установленный в «Do not copy», ,

+0

Спасибо! Возможно, через пару часов я пойму, что я не могу создать синтаксическую ошибку и, таким образом, посмотрел там. –

0

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

1
  1. Выберите App.xaml и отобразите его свойства. Set Построение мероприятия до ApplicationDefinition.
  2. App.xaml и его соответствующий * .cs файл должны быть помещены в корневой каталог файла * .csproj, т.е. е. а не в папку «Источник».
0

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

0

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

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

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

0

Проверьте, чтобы увидеть, если проект будет установлен в качестве «Ввод в эксплуатацию проекта»

правой кнопкой мыши на проекте и выберите «Установить в качестве проекта запуска» из меню.

0

Если вы хотите, чтобы PARAMATERS быть указано из команды, они должны выглядеть следующим образом:

[STAThread] 
static void Main(params string[] paramaters) 
{ 

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

0

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

В моем случае я скопировал .csproj из образца проекта, который включал ложь без включения файла Program.cs. Который должен был либо удалить EnableDefaultCompileItems, то наш include Program.cs в компиляции явно

Смежные вопросы

 Смежные вопросы