Ответ 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
.