ASP.Net 5 Console Application Entry Point

若如初见. 提交于 2019-12-13 01:03:22

问题


I've been trying to build a console application in ASP.Net 5 and am having some trouble with the entry point. I've looked at the following: Entry point can be marked with the 'async' modifier on CoreCLR? And https://msdn.microsoft.com/en-us/magazine/dn913182.aspx. When I create a Console Application (Package) with Visual Studio 2015 It creates the following Program File

public class Program
{
    public static void Main(string[] args)
    {
    }
}

However I want to utilise the instance have Main as an instance method so I can add a parameterless constructor of Program and have some Dependency Injection magic.. However when I remove "static" Visual Studio gives me the following error:

"Program does not have a static 'Main' method suitable for an entry point".

I noticed in the project.json file I have the following entry:

"compilationOptions": {
    "emitEntryPoint": true
}

If I change this to false. The application builds but it does not execute the Main method. But it does seem to call my Program Constructor. Am I then supposed to just call Main() manually? I feel like I'm doing something wrong here. I would appreciate any help.


回答1:


The DNX platform wants to be compatible with regular Program.Main entry points. Therefore console apps require to have a static entry point:

public static void Main(string[] args) { ... }

It has been changed since RC1: https://github.com/aspnet/Announcements/issues/113

Related: Runtime services no longer get injected into DNX console app (RC1)



来源:https://stackoverflow.com/questions/34672242/asp-net-5-console-application-entry-point

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!