2016-06-29 3 views
6

auswählen Ich kann nicht finden, was ist der Unterschied zwischen "Build" und "Plattform" (und vielleicht einige andere) Arten von Abhängigkeit, und was ist der Standardtyp .Was ist und wie den Typ der Abhängigkeit in project.json

Als Beispiel kann ich hinzufügen Abhängigkeit mit

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

oder

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

oder

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

Also wie soll man wählen? Official documentation enthält dazu noch keine Informationen.

Antwort

5

Ich würde vorschlagen, die manuelle Bearbeitung dieser Datei von Hand zu vermeiden, auf diese Weise vermeiden Sie, sich damit zu sehr zu beschäftigen. Darüber hinaus gibt es plans, um es vollständig zu entfernen - so dass Sie nicht einmal eine project.json Datei verwenden, um dependencies zu definieren. Gemäß der JSON SchemaStore definition des project.json wird die type Schlüssel als solche definiert:

"type": { 
    "type": "string", 
    "default": "default", 
    "enum": [ "default", "build", "platform" ] 
  • build eine Abhängigkeits =, die nur für den Bau des Projekts erforderlich ist, build-time dependency

  • platform = Eine Abhängigkeit, von der erwartet wird, dass sie sich auf der Plattform befindet, auf der Ihr Projekt auf target konfiguriert ist.

Die Art „Plattform“ Eigenschaft auf dieser Abhängigkeit bedeutet, dass die Zeit veröffentlichen zu werden überspringen die Werkzeuge der Baugruppen für die Abhängigkeit der veröffentlichten Ausgabe zu veröffentlichen.

Wenn Sie die Quelle für die ProjectReader.cs im Dotnet Repo untersuchen, werden Sie sehen, wie es dieses JSON auf ein Objekt serialisiert, und in diesem Objekt können wir die Bedeutung (detailliert oben) finden.

Zusätzliche Lese

+0

"können wir folgern, folgende:" Haben Sie vergessen, dass ein Teil zu beenden? – svick

+0

@svick, yep - Ich war abgelenkt bei diesem ... schönen Fang. –

0

Die Dokumentation macht es angeben (zumindest für Plattform), die Sie gerade an der richtigen Stelle suchen müssen :)

Sie können ihn unter der .NET Core App Types Seite. Im Grunde bedeutet "Plattform", dass es von der installierten Laufzeitumgebung aus verwendet wird und beim Veröffentlichen/Bereitstellen der Anwendung nicht gepackt wird.

Grundsätzlich verwenden Sie "Plattform" für portable Anwendungen und keine Art für eigenständige Anwendungen.