Słyszałem, że środowisko ASP.NET Core może być ukierunkowane na środowisko .NET Framework 4.6.1. Czy to oznacza, że może używać tylko .NET 4.6.1, czy może używać .NET 4.6.1 wraz z .NET Core?Czy mogę używać wyłącznie kierowania ASP.NET Core .NET 4.6.1?
Odpowiedz
Można uruchomić środowisko ASP.NET Core na platformie .NET Core 1.0 lub .NET Framework 4.5.1+. Ponieważ "ASP.NET Core" to tak naprawdę tylko zestaw pakietów NuGet, możesz zainstalować je w projekcie kierowanym na dowolną frameworku.
Na przykład, projekt .NET Rdzeń będzie wyglądać następująco:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": { }
}
Choć projekt Framework będzie wyglądać (w przypadku NET 4.6.1):
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
"frameworks": {
"net461": { }
}
Działa to, ponieważ pakiet Microsoft.AspNetCore.Mvc zawiera obiekty docelowe dla .NET Framework 4.5.1 i .NET Standard Library 1.6.
Możliwe jest również, aby zbudować dla obu ram z jednego projektu:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
},
"frameworks": {
"net461": { },
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
W tym przypadku należy pamiętać, że zależność Microsoft.NETCore.App
zostanie przeniesiony wewnątrz sekcji frameworks
. Jest to konieczne, ponieważ ta zależność jest wymagana tylko podczas budowania dla netcoreapp1.0
, a nie net461
.
Można wykonać obie - docelową tylko CLR na komputerze, Core CLR lub obie. Aby kierować na pulpit Clr 4.6.1, używaj monikera net461
jako struktury docelowej. Aby kierować do Core Clr, użyj netcoreapp1.0
. Możesz ich używać obok siebie, ale czujesz się trochę nieswojo - dlaczego miałbyś to zrobić w przypadku aplikacji?
Dzięki. Niektóre usługi hostingowe obsługują tylko .NET 4.6.1. Dlatego chcę używać Asp.NET Core, ale nadal będę mógł przesłać go do tych usług. –
@AnyName Cóż, pulpit kierowania ASP.Net Core .NET nadal jest rdzeniem Asp.NET Core. Jeśli nie będziesz mieć oddzielnego kodu, co jest celem kompilacji krzyżowej - po prostu cel net4x? Z drugiej strony istnieją dwa "smaki" Asp.NET Core, gdy kierujesz je na "netcoreapp1.0" - może to być aplikacja przenośna lub samodzielna (tzn. Seflcontained). Jeśli Twój dostawca nie obsługuje przenośnych aplikacji .NET Core, utwórz autonomiczną aplikację - jest samodzielna (to znaczy zawiera środowisko wykonawcze), więc nie ma żadnych dodatkowych zależności). – Pawel
Czy to oznacza, że nie mogę wdrożyć aplikacji, jeśli dostawca nie obsługuje .NET Core (niezależnie od docelowego .NET)? Obecnie używam hosta udostępnionego, więc nie ma zbyt wielu opcji. –
ASP.NET Core 2.0 nie będzie w stanie kierować na pełne środowisko .NET ([patrz github] (https://github.com/aspnet/Home/issues/2022)), tylko .NET Core 2.0 –
Aaaaaa i na szczęście , zmienili zdanie ([źródło] (http://www.theregister.co.uk/2017/05/11/microsoft_asp_net_core_2_0/)). –