Подтвердить что ты не робот

Можно ли использовать ASP.NET Core для таргетинга только .NET 4.6.1?

Я слышал, что ASP.NET Core может ориентироваться на .NET Framework 4.6.1. Означает ли это, что он может использовать только .NET 4.6.1, или он может использовать .NET 4.6.1 вместе с .NET Core?

4b9b3361

Ответ 1

Вы можете запустить ASP.NET Core поверх .NET Core 1.0 или .NET Framework 4.5.1+. Поскольку "ASP.NET Core" - это действительно набор пакетов NuGet, вы можете установить их в проект, ориентированный на любую фреймворк.

Например, проект .NET Core будет выглядеть следующим образом:

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  },
  "frameworks": {
    "netcoreapp1.0": { }
  }

В то время как проект .NET Framework будет выглядеть (в случае .NET 4.6.1):

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0"
  },
  "frameworks": {
    "net461": { }
  }

Это работает, потому что в пакете Microsoft.AspNetCore.Mvc есть цели как для .NET Framework 4.5.1, так и для .NET Standard Library 1.6.

Также возможно создать для обеих фреймворков один проект:

  "dependencies": {
    "Microsoft.AspNetCore.Mvc": "1.0.0",
  },
  "frameworks": {
    "net461": { },
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      }
    }
  }

В этом случае обратите внимание, что зависимость Microsoft.NETCore.App перемещается внутри раздела frameworks. Это необходимо, потому что эта зависимость нужна только при построении для netcoreapp1.0, а не net461.

Ответ 2

Вы можете сделать то и другое - то есть целевые только для CLR для ПК, Core CLR или для обоих. Чтобы настроить таргетинг на рабочий стол Clr 4.6.1, используйте net461 прозвище в качестве целевой среды. Чтобы настроить Core Clr, используйте netcoreapp1.0. Вы можете использовать их бок о бок, но это немного неудобно - зачем вы это делаете даже в случае приложений?