2015-06-10 11 views
18

Aplikacja 01.dla aplikacji ASP.NET 5 zawiera przykładowy plik project.json (w wersji skróconej poniżej).Jaka jest różnica między "zależnościami" a "frameworkAssembly" w project.json?

Jaka jest różnica między frameworkAssemblies i dependencies?

A dlaczego dnx451 korzysta z jednego, a dnxcore50 korzysta z drugiego?

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

Odpowiedz

20

frameworkAssemblies odnosi się do zespołów znajdujących się w pamięci podręcznej GAC (Global montaż).

Rozważmy następujący przykład:
chcę użyć API ADO.NET (SqlConnection, SqlCommand) do pracy z bazą danych SQL Server. Wiem, że te apisy są częścią System.Data.dll i dlatego chcą się z nim zapoznać. Teraz, gdy zainstalowana jest pełna wersja .NET Framework, instaluje ona niektóre zespoły w GAC (również ten System.Data.dll), a zatem w poniższym przykładzie widzisz odniesienie do frameworkassemblies. Jadąc do CoreClr, muszę się dowiedzieć, w którym pakiecie istnieją te typy. Do tego można użyć strony o nazwie PackageSearch (zbudowanej przez członka zespołu ASP.NET), w której można wyszukać typ i znaleźć nazwę pakietu. Na podstawie tego znajdziesz pakiet System.Data.SqlClient. Ponieważ ten pakiet jest zbudowany dla CoreClr, jest częścią sekcji dependencies w sekcji 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-*" 
      } 
     } 
    } 
} 

Teraz powiedzmy, że chcemy jeszcze dodać wsparcie dla serializacji i deserializacji json w aplikacji i chcą odwołać Json.Net Nuget pakietu. Pakiet Nuget Json.Net obsługuje zarówno desktop, jak i core clr, a zatem można umieścić go w sekcji dependencies wspólnej dla obu frameworków.

{ 
    "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

Dzięki za link do wyszukiwania paczek, ta strona jest genialna! - http://packagesearch.azurewebsites.net/ – timdougall

Powiązane problemy