Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Net核心:程序不包含静态';主要';适用于入口点的方法_C#_Asp.net Core - Fatal编程技术网

C# Net核心:程序不包含静态';主要';适用于入口点的方法

C# Net核心:程序不包含静态';主要';适用于入口点的方法,c#,asp.net-core,C#,Asp.net Core,我正在尝试将基于洋葱架构设计方法的Asp.NETWebAPI项目移植到Asp.NETCore。但是,当我构建类库时,编译器正在Program.cs中查找静态Main方法,我得到: C:\Projects\Some\src\Some.Core\error CS5001:程序不包含 适用于入口点的静态“主”方法 我假设整个解决方案只有一个Program.cs/入口点,它位于我的WebApi项目中。我错了吗?否则,如何解决此错误?我错误地认为“emittentrypoint”:true达到了这个目的

我正在尝试将基于洋葱架构设计方法的Asp.NETWebAPI项目移植到Asp.NETCore。但是,当我构建类库时,编译器正在Program.cs中查找静态Main方法,我得到:

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

我假设整个解决方案只有一个Program.cs/入口点,它位于我的WebApi项目中。我错了吗?否则,如何解决此错误?我错误地认为
“emittentrypoint”: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": {}
  }
}
感谢您的建议。

为了避免类库中出现“程序不包含适合入口点的静态“Main”方法”的错误,请从buildOptions中删除emittentrypoint-

  "buildOptions": {
    "emitEntryPoint": true
  },

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

我一直在使用.NET Core 2.0的macOS上处理此错误,它似乎与我将解决方案存储在Google Drive文件夹中有关。这当然不是因为我缺少项目中的主要方法,尽管我偶尔会看到文件/文件夹从Rider中消失,重新添加它们(添加现有项)可以解决问题。我在VS for Mac和VS代码中遇到了相同的错误,但它们似乎没有更新文件夹内容以反映丢失的文件,因此很难查明问题所在


tl;dr尝试将您的解决方案/项目移出同步网络驱动器

一个显而易见的解决方案是检查官方MSDN错误代码说明


我使用了async修饰符,必须移动到C语言版本7.1+

如果主方法具有async修饰符,请确保所选的C语言版本为7.1或更高版本。您可以通过手动将以下元素添加到.csproj文件中来解决此问题


最新的

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

<PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <OutputType>Library</OutputType> </PropertyGroup> netcoreapp2.2 图书馆

最新的
图书馆

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


这应该在哪里找到?代码式答案虽然可以解决手头的问题,但不太好,因为它们通常不会说明为什么这是一个好的解决方案。你可以通过阅读这篇关于好答案的介绍来改进你的答案:谢谢你的评论,这正是我遇到的问题。我有一个额外的控制台应用程序,它不是启动项目,在将其输出更改为类库之后,它就开始工作了 <PropertyGroup> <TargetFramework>netcoreapp2.2</TargetFramework> <OutputType>Library</OutputType> </PropertyGroup>
<PropertyGroup>
<LangVersion>latest</LangVersion>
    <OutputType>Library</OutputType>
  </PropertyGroup>