Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

error CS5001: Program does not contain a static 'Main' method suitable for an entry point

지난 글의 예제를,

C# 9 최상위 문에 STAThread 사용
; https://www.sysnet.pe.kr/2/0/12623

.NET Framework 4.0 대상의 C# 9.0 컴파일러로 실습하면 이런 오류가 발생합니다.

Rebuild started...
1>------ Rebuild All started: Project: ConsoleApp1, Configuration: Debug Any CPU ------
1>C:\temp\ConsoleApp1\Program.cs(1,1,33,2): warning CS0028: '<top-level-statements-entry-point>' has the wrong signature to be an entry point
1>C:\temp\ConsoleApp1\Program.cs(6,1,13,4): error CS1061: 'Task' does not contain a definition for 'GetAwaiter' and no accessible extension method 'GetAwaiter' accepting a first argument of type 'Task' could be found (are you missing a using directive or an assembly reference?)
1>CSC : error CS5001: Program does not contain a static 'Main' method suitable for an entry point
1>C:\temp\ConsoleApp1\Program.cs(6,1,13,3): error CS1061: 'Task<int>' does not contain a definition for 'GetAwaiter' and no accessible extension method 'GetAwaiter' accepting a first argument of type 'Task<int>' could be found (are you missing a using directive or an assembly reference?)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

오류 메시지가 "warning CS0028: '<top-level-statements-entry-point>' has the wrong signature to be an entry point"로 시작해 "error CS5001: Program does not contain a static 'Main' method suitable for an entry point"를 포함하고 있지만 실제 오류는 "error CS1061"에서 보여주는 메시지 때문에 발생하는 것입니다.

즉, C# 9.0의 TLS(최상위 문)로 번역된 <Main>$ 메서드로의 변환이 허용되려면 GetAwaiter 메서드가 필요한데,

Task.GetAwaiter Method
; https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.task.getawaiter

그 메서드는 .NET 4.5부터 구현되어 있기 때문입니다. (참고로, "error CS5001: Program does not contain a static 'Main' method suitable for an entry point" 오류 메시지는 ".NET Core 콘솔 프로젝트에서 Kestrel 호스팅 방법" 글에서도 발생한 적이 있습니다.)




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 5/3/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13545정성태1/30/20245191닷넷: 2212. ASP.NET Core - 우선순위에 따른 HTTP/HTTPS 호스트:포트 바인딩 방법
13544정성태1/30/20244992오류 유형: 894. Microsoft.Data.SqlClient - Could not load file or assembly 'System.Security.Permissions, ...'
13543정성태1/30/20245223Windows: 254. Windows - 기본 사용 중인 5357 포트 비활성화는 방법
13542정성태1/30/20244861오류 유형: 893. Visual Studio - Web Application을 실행하지 못하는 IISExpress - 두 번째 이야기
13541정성태1/29/20245368VS.NET IDE: 188. launchSettings.json의 useSSL 옵션
13540정성태1/29/20245687Linux: 69. 리눅스 - "Docker Desktop for Windows" Container 환경에서 IPv6 Loopback Address 바인딩 오류
13539정성태1/26/20245531개발 환경 구성: 703. Visual Studio - launchSettings.json을 이용한 HTTP/HTTPS 포트 바인딩
13538정성태1/25/20245887닷넷: 2211. C# - NonGC(FOH) 영역에 .NET 개체를 생성파일 다운로드1
13537정성태1/24/20246033닷넷: 2210. C# - Native 메모리에 .NET 개체를 생성파일 다운로드1
13536정성태1/23/20245869닷넷: 2209. .NET 8 - NonGC Heap / FOH (Frozen Object Heap) [1]
13535정성태1/22/20245947닷넷: 2208. C# - GCHandle 구조체의 메모리 분석
13534정성태1/21/20245858닷넷: 2207. C# - SQL Server DB를 bacpac으로 Export/Import파일 다운로드1
13533정성태1/18/20245830닷넷: 2206. C# - TCP KeepAlive의 서버 측 구현파일 다운로드1
13532정성태1/17/20245844닷넷: 2205. C# - SuperSimpleTcp 사용 시 주의할 점파일 다운로드1
13531정성태1/16/20246102닷넷: 2204. C# - TCP KeepAlive에 새로 추가된 Retry 옵션파일 다운로드1
13530정성태1/15/20245347닷넷: 2203. C# - Python과의 AES 암호화 연동파일 다운로드1
13529정성태1/15/20245420닷넷: 2202. C# - PublishAot의 glibc에 대한 정적 링킹하는 방법
13528정성태1/14/20245652Linux: 68. busybox 컨테이너에서 실행 가능한 C++, Go 프로그램 빌드
13527정성태1/14/20245686오류 유형: 892. Visual Studio - Failed to launch debug adapter. Additional information may be available in the output window.
13526정성태1/14/20245838닷넷: 2201. C# - Facebook 연동 / 사용자 탈퇴 처리 방법
13525정성태1/13/20245422오류 유형: 891. Visual Studio - Web Application을 실행하지 못하는 IISExpress
13524정성태1/12/20245588오류 유형: 890. 한국투자증권 KIS Developers OpenAPI - GW라우팅 중 오류가 발생했습니다.
13523정성태1/12/20245191오류 유형: 889. Visual Studio - error : A project with that name is already opened in the solution.
13522정성태1/11/20245780닷넷: 2200. C# - HttpClient.PostAsJsonAsync 호출 시 "Transfer-Encoding: chunked" 대신 "Content-Length" 헤더 처리
13521정성태1/11/20246004닷넷: 2199. C# - 한국투자증권 KIS Developers OpenAPI의 WebSocket Ping, Pong 처리
13520정성태1/10/20245769오류 유형: 888. C# - Unable to resolve service for type 'Microsoft.Extensions.ObjectPool.ObjectPool`....' [1]
1  2  3  4  5  6  7  8  9  10  [11]  12  13  14  15  ...