[c#] 진입 점에 적합한 정적 ‘main’메서드를 포함하지 않습니다.

나는 매일 코드를 별도의 .cs 파일로 구성하기 시작했으며 UI와 함께 작동하는 메서드가 계속 작동 할 수 있도록 동일한 네임 스페이스와 공용 부분 클래스 이름 아래에 .cs 코드를 생성하여 메서드가 상호 운용 가능합니다.

내 헤더는 다음을 호출하는 기본 코어 파일을 포함하여 4 개의 파일에서 다음과 같이 보입니다.

public shell()
{
InitializeComponent();
}

UI와 함께 작동하는 .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
    {

이제 내 응용 프로그램을 디버그 / 미리보기하려고 할 때 (BTW는 Visual Studio 2010 Express 내의 Windows 응용 프로그램) 다음 오류 메시지가 표시됩니다.

진입 점에 적합한 정적 ‘main’메서드를 포함하지 않습니다.

Application-> Startup 개체의 응용 프로그램 속성을 살펴 보았지만 옵션을 제공하지 않습니다. 내 InitializeComponent ()가있는 .cs 파일에서 시작하도록 응용 프로그램에 알리려면 어떻게해야합니까? 명령?

  • 지금까지 해결책없이 둘러 보았습니다.
  • 각 .cs 파일의 속성은 ‘컴파일’로 설정됩니다.
  • 솔루션 탐색기에 App.xaml 파일이 표시되지 않지만 app.config 파일이 표시됩니다.

나는 여전히 매우 새롭고 이것은 C # 코드로 구성 방법에 대한 첫 번째 시도입니다.



답변

이 문제도 살펴보고 있었는데 제 경우에는 해결책이 너무 쉬웠습니다. 솔루션에 새로운 빈 프로젝트를 추가했습니다. 새로 추가 된 프로젝트는 자동으로 콘솔 애플리케이션으로 설정됩니다. 그러나 추가 된 프로젝트가 ‘빈’프로젝트 였기 때문에 새 프로젝트에는 Program.cs가 없었습니다. (예상대로)

내가해야 할 일은 프로젝트 속성의 출력 유형을 클래스 라이브러리로 변경하는 것뿐이었습니다.


답변

프로젝트> 속성에서 출력 유형을 “클래스 라이브러리”의 출력 유형으로 변경합니다. 기본적으로이 설정은 “콘솔 응용 프로그램”으로 설정되었을 수 있습니다.


답변

이 메서드를 클래스에 추가하고 여전히 오류가 발생하는지 확인하십시오.

[STAThread]
static void Main()
{
}


답변

이 오류가 발생하여이 솔루션을 사용하여 해결했습니다.

  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. “속성”을 선택합니다.
  3. “출력 유형”을 “클래스 라이브러리”로 설정합니다.


답변

라는 파일이 없으면 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());
         }
     }

 }


답변

  1. App.xaml을 선택하고 해당 속성을 표시합니다. 빌드 작업ApplicationDefinition으로 설정합니다 .
  2. App.xaml 및 해당 * .cs 파일은 “Source”폴더가 아닌 * .csproj 파일의 루트 디렉터리에 있어야합니다.


답변

Main 메서드가 있지만 여전히이 오류가 발생하는 경우 Main 메서드를 포함하는 파일에 “Build action”이 “Compile”로 설정되고 “Copy to ouput directory”가 “Do not copy”로 설정되어 있는지 확인하십시오.