Ho sentito che ASP.NET Core può utilizzare .NET Framework 4.6.1. Significa che può utilizzare solo .NET 4.6.1, oppure può utilizzare .NET 4.6.1 insieme a .NET Core?Posso utilizzare solo il targeting per ASP.NET Core. NET 4.6.1?
risposta
È possibile eseguire ASP.NET Core su .NET Core 1.0 o .NET Framework 4.5.1+. Poiché "ASP.NET Core" è in realtà solo un insieme di pacchetti NuGet, è possibile installarli in un progetto che si rivolge a entrambi i framework.
Ad esempio, un progetto NET core sarebbe simile a questa:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
},
"frameworks": {
"netcoreapp1.0": { }
}
Mentre un progetto di .NET Framework sarà simile (nel caso di .NET 4.6.1):
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0"
},
"frameworks": {
"net461": { }
}
Questo funziona perché il pacchetto Microsoft.AspNetCore.Mvc ha destinazioni sia per .NET Framework 4.5.1 che per .NET Standard Library 1.6.
E 'anche possibile costruire sia per i quadri da un progetto:
"dependencies": {
"Microsoft.AspNetCore.Mvc": "1.0.0",
},
"frameworks": {
"net461": { },
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
In questo caso, si noti che la dipendenza Microsoft.NETCore.App
viene spostato all'interno della sezione frameworks
. Ciò è necessario perché questa dipendenza è necessaria solo quando si crea netcoreapp1.0
, non net461
.
È possibile eseguire entrambe le operazioni, ad esempio solo target CLR desktop, Core CLR o entrambi. Per targetizzare il desktop Clr 4.6.1 utilizzare il moniker net461
come framework di destinazione. Per target Core Clr utilizzare netcoreapp1.0
. Puoi usarli fianco a fianco ma ti sembra un po 'imbarazzante. Perché dovresti farlo anche in caso di app?
Grazie. Alcuni servizi di web hosting supportano solo .NET 4.6.1. Quindi voglio usare Asp.NET Core, ma posso ancora avviarlo su questi servizi. –
@AnyName Bene, il desktop .NET per il targeting di base di ASP.Net è ancora Asp.NET Core. Se non hai intenzione di avere un codice separato, qual è il punto della compilazione incrociata, basta scegliere net4x? D'altra parte ci sono in realtà due "sapori" di Asp.NET Core quando si prende in considerazione 'netcoreapp1.0' - può essere un'app portatile o autonoma (vale a dire seflcontained). Se il tuo provider non supporta le app .NET core portatili, crea un'app standalone: è autonoma (cioè contiene il runtime) quindi non ha alcuna dipendenza aggiuntiva). – Pawel
Ciò significa che non è possibile distribuire l'app se il provider non supporta .NET Core (indipendentemente dal .NET di destinazione)? Attualmente sto utilizzando un host condiviso, quindi non ci sono molte opzioni. –
ASP.NET Core 2.0 non sarà in grado di indirizzare il framework .NET completo ([vedi github] (https://github.com/aspnet/Home/issues/2022)), solo .NET Core 2.0 –
Aaaaaaa e fortunatamente , hanno cambiato idea ([fonte] (http://www.theregister.co.uk/2017/11/11/microsoft_asp_net_core_2_0/)). –