2015-11-25 3 views
28

(jetzt ausgelöst als DNX issue 3206 ...)Wie lautet das erwartete Verhalten der übergeordneten relativen Verzeichnisse in global.json?

DNX-Umgebung: 1.0.0-rc1, Windows 10 x64.

Stellen Ich habe drei Lösungen:

  • Application1
  • Application2
  • Gemeinsame

Jede dieser Lösungen hat mehrere Projekte in; Es wäre nicht sinnvoll, alle Projekte in einer einzigen Lösung zu haben, auch wenn dies das Problem vereinfachen würde.

Verschiedene Projekte in Application1 und Application2 hängen von einem Projekt in Common ab. Ihre project.json Dateien zeigen diese Abhängigkeit in einer normalen Weise an. Während ich schließlich die Artefakte von Common auf einem NuGet-Server (intern oder extern) veröffentlichen möchte, ist es sinnvoll, vorübergehend alles nur aus der Quelle zu erstellen.

kann ich tun, dass global.json bearbeite innerhalb von (sagen wir) Application1 haben:

{ 
    "projects": [ "src", "test", "../Common/src" ], 
    "sdk": { "version": "1.0.0-rc1-final" } 
} 

Mit dem im Ort, ich kann ein dnu restorevom Application1 ausführen Verzeichnis ... aber nicht von der Wurzel Verzeichnis. (Der Fehler ist "Kann nicht finden, Abhängigkeit 'Common'> = 0.0.0- *".) Ich kann dnu restore Application1 aus dem Stammverzeichnis ausführen, aber nicht nur dnu restore.

Ich habe verschiedene Möglichkeiten ausprobiert, um auf das Verzeichnis Common src zu verweisen (einschließlich "./Common/src", "Common/src", "../repo-name/Common/src"), aber Port ' Ich hatte noch keine Freude. In jedem Fall erhalte ich die oben gezeigte Fehlermeldung. Ich habe versucht, dnu -v restore zu verwenden, aber das schien keine zusätzlichen Informationen darüber zu geben, welche Verzeichnisse für quellbasierte Pakete untersucht wurden.

Also, wie sollte die "../Common/src" in global.json gelöst werden? Ist das eine vernünftige Herangehensweise an das von mir beschriebene Entwicklungsszenario, und wenn ja, ist es nur eine Angelegenheit, einen Fehler gegen DNX zu melden?

+1

Ich bewegen ändern Ich lerne immer noch, aber solltest du nicht nur eine global.json-Datei haben und sie an der Wurzel haben? –

+1

@ KhalidAbuhakmeh: Eins pro Lösung. Dies ist ein Fall von mehreren Lösungen mit jeweils mehreren Projekten. Wird die Frage klären. –

+1

Keine Erfahrung in global.json (oder dnx); aber im Allgemeinen versuche ich relative Verweise wie "../ folder "weil sie in verschiedenen Kontexten problematisch sind. Haben Sie versucht, den Common/src-Inhalt im Ordner der gegebenen Anwendung zu speichern und ohne den Teil" ../ "darauf zu verweisen? Nur zum Testen. Um zu sehen, ob dies der Fall ist Problem: – varocarbas

Antwort

8

Es funktioniert nicht die Art und Weise, wie Sie es erwarten, wenn Sie dnu restoreglobal.json in aktuellen oder übergeordneten Verzeichnissen starten starten, und liest den Projektpfad daraus. Also in Ihrem Beispiel liest es nichts, weil global.json im Unterverzeichnis ist.

Eine Möglichkeit, dieses Problem zu lösen, ist global.json mit folgendem Inhalt zu Stammordner hinzufügen:

{ 
    "projects": [ "Application/src", "Common/src" ] 
} 

Ich werde über dieses Szenario umhören und wenn es könnte, wenn zu dotnet cli

+1

Also sucht es * nur * nach project.json, wenn es nach Unterverzeichnissen sucht? Das würde einen Sinn für das Behaviour ergeben, scheint aber eine seltsame Designwahl zu sein. Wird aber experimentieren - danke! –

+1

Richtig, nachdem ich ein bisschen mehr gespielt habe, denke ich, das ist genau das Problem. Ändere das Problem entsprechend :) –

Verwandte Themen