Asp.Net Core: программа не содержит статического метода "Main", подходящего для точки входа

Я пытаюсь портировать мой Asp.Net проект WebApi, основанный на подходе к проектированию архитектуры Onion, Asp.Net ядро. Однако, когда я создаю свои библиотеки классов, компилятор ищет статический основной метод в программе.cs и я получаю:

C:ProjectsSomesrcSome.Coreerror CS5001: программа не содержит статический метод "Main", подходящий для точки входа

Я предполагаю, что должна быть только одна программа.cs / entry точка для общего решения, и это находится внутри моего проекта WebApi. Я не прав? В противном случае, как устранить эту ошибку? Я ошибочно предположил, что "emitEntryPoint": true служили этой цели.

вот пример проекта моей библиотеки классов.в 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": {}
  }
}

предложения приветствуются.

2 ответов


чтобы избежать ошибки "программа не содержит статического метода "Main", подходящего для точки входа " в библиотеке классов, удалите emitEntryPoint из buildOptions -

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

emitEntryPoint сообщает компилятору, Создавать ли консольное приложение или библиотеку. Для получения дополнительной информации см. Это в должности


Я имел дело с этой ошибкой на macOS с .NET Core 2.0, и это, похоже, связано с моим хранением моего решения в папке Google Drive. Это, конечно, не потому, что мне не хватает основных методов в моих проектах, хотя периодически я вижу, как файлы/папки исчезают из Rider и их повторное добавление (добавление существующего элемента) решает проблему. Я получаю ту же ошибку в VS для Mac и VS Code, но они, похоже, не обновляют содержимое папки, чтобы отразить отсутствующие файлы, поэтому это было труднее определить проблему.

tl;dr попробуйте переместить решение / проект из синхронизированного сетевого диска!