2015-06-10 1 views
18

Il documentation for using project.json per le applicazioni ASP.NET 5 include un file project.json di esempio (versione abbreviata di seguito).Qual è la differenza tra "dipendenze" e "frameworkAssemblies" in project.json?

Qual è la differenza tra frameworkAssemblies e dependencies?

E perché dnx451 utilizzare uno e dnxcore50 utilizzare l'altro?

{ 
    "version": "0.1-alpha-*", 
    ... 
    "frameworks": { 
    "dnx451": { 
    "frameworkAssemblies": { 
     ... 
     } 
    }, 
    "dnxcore50": { 
    "dependencies": { 
     ... 
    } 
    } 
} 

risposta

20

frameworkAssemblies riferisce a gruppi presenti in GAC (Global Assembly Cache).

consideri il seguente esempio:
voglio utilizzare le API ADO.NET (SqlConnection, SqlCommand) per lavorare con un database SQL Server. So che queste apis fanno parte di System.Data.dll e quindi voglio farvi riferimento. Ora, quando è installata la versione completa di .NET Framework, installa alcuni assembly nel GAC (che include anche questo System.Data.dll) e quindi viene visualizzato un riferimento a frameworkassemblies nell'esempio seguente. Venendo a CoreClr, ho bisogno di scoprire in quale pacchetto esistono questi tipi. Per questo è possibile utilizzare il sito Web denominato PackageSearch (creato da un membro del team ASP.NET) in cui è possibile cercare un tipo e trovare il nome del pacchetto. Sulla base di questo, troverai il pacchetto System.Data.SqlClient. Poiché questo pacchetto è stato creato per CoreClr, fa parte della sezione dependencies all'interno della sezione dnxcore50.

{ 
    "version": "1.0.0-*", 
    "description": "Test App", 
    "dependencies": { 
    }, 
    "frameworks": { 
     "dnx451": { 
      "frameworkAssemblies": { 
       "System.Data": "4.0.0.0" 
      } 
     }, 
     "dnxcore50": { 
      "dependencies": { 
       "System.Data.SqlClient": "4.0.0-beta-*" 
      } 
     } 
    } 
} 

Ora diciamo che si desidera aggiungere anche il supporto per JSON serializzazione e deserializzazione nella vostra app e desidera fare riferimento Json.Net NuGet pacchetto. Il pacchetto nuget di Json.Net supporta sia il desktop che il core clr e quindi lo inseriresti nella sezione dependencies comune a entrambi i framework.

{ 
    "version": "1.0.0-*", 
    "description": "Test App", 
    "dependencies": { 
     "Newtonsoft.Json": "6.0.6" 
    }, 
    "frameworks": { 
     "dnx451": { 
      "frameworkAssemblies": { 
       "System.Data": "4.0.0.0" 
      } 
     }, 
     "dnxcore50": { 
      "dependencies": { 
       "System.Data.SqlClient": "4.0.0-beta-*" 
      } 
     } 
    } 
} 
+0

Grazie per il collegamento a Ricerca pacchetto, questo sito è fantastico! - http://packagesearch.azurewebsites.net/ – timdougall