2015-08-16 19 views
7

In questo video, Scott Hanselman intervista un ragazzo del team ASP.NET. Dice che uno degli obiettivi di ASP.NET 5, in cima a .NET Core, è che le app non dipenderanno dagli assembly .NET Framework e GAC sul server di hosting. Invece, le librerie .NET Core verranno rilasciate tramite i pacchetti NuGet e le app verranno distribuite con le loro dipendenze.Le app .NET Core richiedono il runtime .NET installato sul computer di destinazione?

Uno dei motivi è che Microsoft può rilasciare rapidamente una correzione di bug o una nuova funzionalità e non è necessario attendere che la nuova versione (del framework completo) sia installata nel nostro ambiente di hosting.

La mia domanda è:

sono le applicazioni costruite su .NET Nucleo veramente indipendente dalla versione di .NET installata sul computer di destinazione, e può funzionare anche senza che il .NET Framework installato?

risposta

7

Sì, il quadro si utilizza nella vostra applicazione è completamente indipendente installato sul server di destinazione .NET Framework, perché il nucleo .NET Framework viene fatto riferimento tramite NuGet pacchetti e può essere fornito in bundle per la distribuzione attraverso il DNX Utility, specificamente di interesse per voi sarà il comando dnu publish.

Ecco un estratto, che descrive ciò che fa dnu publish:


Pubblica (dnu publish)

Pubblica comando pacchetto dell'applicazione in una directory autonoma che può essere lanciato. Si creerà la seguente struttura di directory:

  • uscita/
  • uscita/pacchetti
  • uscita/appName
  • uscita/commandName.cmd

L'elenco dei pacchetti contiene tutti i pacchetti vostra l'applicazione deve essere eseguita.

La directory appName conterrà tutto il codice delle applicazioni, se si dispone di riferimenti di progetto che appariranno come la propria directory con il codice a questo livello pure.


Così il .NET Nucleo esisterà nella directory output/packages e non avrà bisogno di essere installato sul server di destinazione.

+0

Vale la pena confrontarsi con il modo in cui i giochi Unity possono essere confezionati con un numero sufficiente di DLL Mono per essere indipendenti dal framework e possono quindi funzionare senza alcuna installazione .NET o Mono sulla macchina. .NET Core consente di installare le app in modo comparabile. –

+0

Quindi cosa è necessario installare sulla macchina di destinazione? – Sean

+0

@Sean - qualcosa per ospitare l'applicazione (ad esempio IIS). –

0

Una normale app di rete .net richiede l'installazione di .net core sulla macchina su cui si desidera eseguire l'applicazione. C'è un modo per evitarlo, tuttavia, pubblicando un'app autonoma. Puoi pubblicare la tua app con la versione richiesta di .net core inclusa. Ciò renderà la tua app più grande, ma se hai bisogno di una sola applicazione su una macchina per eseguire .net, hai bisogno di una versione specifica di .net, o se desideri creare un'applicazione portatile, questa è una buona scelta.

+0

Questo era vero per il precedente framework .net, non è vero? Quindi cosa è cambiato in realtà? – Liero

Problemi correlati