2017-08-11 4 views
0

Ich bin neu im Team Services (Web-basierten) Build-Prozess. Zuvor habe ich eine andere Frage nach einer Lösung mit TF zur Versionskontrolle gestellt. Dank eines großen Individuums wurde dieses Problem gelöst. Ich experimentiere jetzt mit git für Versionskontrolle und geriet in eine ähnliche Situation.VS Team Services git Abhängigkeit Build

Ich habe eine Lösung 1 mit Projekt A und B, wobei B von A (gemeinsamer Code) abhängig ist. Projekt A befindet sich unter einer anderen Lösung 2, wurde jedoch zu Lösung 1 über "Hinzufügen ... vorhandenes Projekt" hinzugefügt. Beide Lösungen und Projekte stehen unter einem anderen git-Repo. Ich benutze Submodul für Projekt B, um Projekt A einzubinden, und dieser Teil funktioniert. Projekt A wird jedoch unter "d: \ a \ 1 \ s \ ProjectA" und eingezogen, wenn der Erstellungsagent versucht, Projekt B zu erstellen. Er sucht nach "d: \ a \ 1 \ s \ ProjectB ... . \ ProjectA \ "für die Abhängigkeit. Wie ändere ich diesen Teil, um dem Erstellungsagenten den Speicherort von Projekt A mitzuteilen? Oder wie kann ich dem Submodul mitteilen, Projekt A auf "d: \ a \ 1 \ s \ ProjectB .... \ ProjectA \" zu ziehen?

Vielen Dank!

Antwort

0

Da Sie ProjectA als Submodul für ProjectB hinzugefügt haben, sollten Sie für ProjectB eine Abhängigkeit hinzufügen, indem Sie ProjectA im Submodul (nicht Lösung 2) auswählen. Sie sollten also das von Ihnen hinzugefügte ProjektA entfernen und dann Hinzufügen -> Vorhandenes Projekt -> ProjektA von Submodul auswählen -> OK wählen.

Dann Commit/Push-Änderungen an VSTS Git Repo. Und bauen Sie Ihr ProjectB, sollte es die abhängigen im Submodul Pfad finden.

Oder wenn Sie das Submodul in root/ProjectB/.../ProjectA in Ihrem lokalen Repo suchen möchten, sollten Sie in das Verzeichnis root/ProjectB/... gehen und git submodule add <URL for the repo including ProjectA> verwenden. Dann befindet sich das Submodul in root/ProjectB/.../ProjectA.

+0

Danke, danke! Ich benutzte sowieso die 2. Route. Zuvor war ich zweimal beim Laden des Submoduls in eine andere Ordnerstruktur (oben in der Wurzel und dann 1 Ebene über der Lösungsdatei) gestolpert. Ich habe das Submodul auf Projekt-B-Ebene in meinem lokalen Repo geladen und es funktionierte, aber nicht bevor ich .gitmodules manuell ändern musste. Fragen - warum war der Pfad in den Git-Modulen ein relativer Pfad (ich musste ihn in einen lokalen Pfad ändern, damit er funktioniert), und warum wo sind 2 Einträge drin? Einer war [Projekt A], der andere ist [Projekt B/ProjektA]. – Joe

+0

'.gitmodules' verwenden den relativen Pfad, damit Git leicht finden kann, welches Verzeichnis das Submodul ist. Tatsächlich gibt es nur einen Eintrag, der für die von Ihnen hinzugefügte Referenz ausgewählt wurde (Es scheint, dass Sie die Referenz hinzugefügt haben, indem Sie "ProjectB /.../ ProjectA" ausgewählt haben), für "projectA /" nur das Submodul, dem Sie hinzugefügt haben ProjektB, der Build wird nur die Referenz finden, die Sie in 'ProjectB /.../ ProjectA' angegeben haben. –

Verwandte Themen