Asp.Net Core:程序不包含适用于入口点的静态"Main"方法

Pet*_*ter 8 c# asp.net-core

我正在尝试将基于Onion Architecture设计方法的Asp.Net WebApi项目移植到Asp.Net Core.但是,当我构建我的类库时,编译器正在寻找Program.cs中的静态Main方法,我得到:

C:\ Projects\Some\src\Some.Core\error CS5001:程序不包含适用于入口点的静态"Main"方法

我假设整个解决方案应该只有一个Program.cs /入口点,而且它位于我的WebApi项目中.我不对吗?否则,我该如何解决此错误?我错误地认为是"emitEntryPoint": true为了这个目的.

这是我的类库的project.json的一个例子:

{
  "version": "1.0.0-*",
  "description": "Some.Core Class Library",
  "buildOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Routing": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.Identity": "1.0.0",
    "Microsoft.Extensions.Configuration": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
  },

  "frameworks": {
    "netstandard1.6": {
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      }
    }
  },
  "runtimes": {
    "win7-x64": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

建议表示赞赏.

END*_*ESA 25

通过OutputType在我的 classlib.csproj 文件中显式设置标签解决了类似的问题:

<物业组>
  <TargetFramework>netcoreapp2.2</TargetFramework>
  <OutputType>库</OutputType> 
</PropertyGroup>


San*_*ket 7

为了避免类库中的"程序不包含适用于入口点的静态'Main'方法"的错误,从buildOptions中删除emitEntryPoint-

  "buildOptions": {
    "emitEntryPoint": true
  },
Run Code Online (Sandbox Code Playgroud)

emitEntryPoint告诉编译器是创建控制台应用程序还是库.有关更多信息,请参阅此帖

  • 应该在哪里找到? (4认同)

小智 6

我更新了类库解决方案中非启动项目的输出类型,问题解决。

在此处输入图片说明

  • 感谢您的评论,这正是我遇到的问题。我有一个额外的控制台应用程序,它不是启动项目,在将其输出更改为类库后,一切都开始工作 (2认同)