2016-06-29 6 views
6

Nie mogę znaleźć informacji na temat różnicy między "build" i "platformą" (i być może niektóre inne) rodzaje zależności, i jaki jest domyślny typ .Co to jest i jak wybrać typ zależności w project.json

Jako przykład mogę dodać zależność używając

"Microsoft.Extensions.JsonParser.Sources": "1.0.0" 

lub

"Microsoft.Extensions.JsonParser.Sources": { 
    "type": "build", 
    "version": "1.0.0" 
}, 

lub

"Microsoft.Extensions.JsonParser.Sources": { 
    "type": "platform", 
    "version": "1.0.0" 
}, 

Więc jak wybrać? Official documentation nie zawiera informacji o tym.

Odpowiedz

5

Sugerowałbym unikanie ręcznego edytowania tego pliku ręcznie, dzięki czemu unikniesz zbytniego zażywania się nim. Dodatkowo istnieje plans, aby usunąć go całkowicie - tak, że nie będziesz już dłużej używać pliku project.json do zdefiniowania dependencies. Według JSON SchemaStore definition z project.json, klucz type jest zdefiniowany jako takie:

"type": { 
    "type": "string", 
    "default": "default", 
    "enum": [ "default", "build", "platform" ] 
  • build = zależność, który jest wymagany tylko dla budynku projektu build-time dependency

  • platforma = zależność, która ma znajdować się na platformie, na której skonfigurowany jest Twój projekt pod numerem target.

typu „platforma” nieruchomość na tej zależności oznacza, że ​​co publikują czas, oprzyrządowanie pominie publikowania zespołów dla tej zależności do opublikowanej wyjściu.

Jeśli zbadać źródło dla ProjectReader.cs w dotnet repo widać jak serializes ten JSON do obiektu, a w tym obiekcie możemy odnaleźć sens (opisaną powyżej).

dodatkowe czytanie

+0

"możemy wywnioskować, co następuje:" Czy można zapomnieć, aby zakończyć tę część? – svick

+0

@svick, yep - Byłem rozproszony na tym ... ładnym haczyku. –

0

Dokumentacja ma przedstawić je (przynajmniej na platformie), wystarczy spojrzeć na właściwym miejscu :)

Można go znaleźć na stronie .NET Core App Types. Zasadniczo "platforma" oznacza używanie jej z zainstalowanego środowiska wykonawczego i nie zostanie spakowana podczas publikowania/wdrażania aplikacji.

Zasadniczo używa się "platformy" dla aplikacji przenośnych i nie typu dla samodzielnych aplikacji.