2016-07-03 29 views

risposta

36

È 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.

+2

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 –

+5

Aaaaaaa e fortunatamente , hanno cambiato idea ([fonte] (http://www.theregister.co.uk/2017/11/11/microsoft_asp_net_core_2_0/)). –

4

È 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?

+1

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. –

+1

@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

+0

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. –

Problemi correlati