2017-08-14 7 views
0

Ich habe ein CoreApp-Projekt (CoreApp) und ein Project1, das vom CoreApp-Projekt abhängt. Danke an jemanden von MSFT on SO, vorher konnte ich dieses mit VSTS git kompilieren, indem ich das Submodul (CoreApp) unter Project1 benutzte. Aber jetzt, in Project1, wenn ich ein Modell im CoreApp-Projekt referenziere (zB eine AppUser-Klasse), bekomme ich den Build-Fehler - "Der Typ oder Namespace-Name 'AppUser' konnte nicht gefunden werden (fehlt eine using-Direktive) oder eine Assembly-Referenz?) "Fehler. Ich habe einige SO-Posts gelesen und nicht nur den Ordnernamen, sondern auch den CoreApp Model-Namespace im CoreApp-Projekt geändert, und jetzt habe ich einen anderen Fehler bekommen - "Der Typ oder Namespace-Name 'CoreAppModels' existiert nicht im Namespace 'CoreAppApp' (fehlt Ihnen eine Assemblyreferenz?) [d: \ a \ 1 \ Project1 \ Project1.csproj]. Ich bekomme auch weiterhin den vorherigen Fehler. Es scheint mir, dass der Buildprozess die CoreApp Assembly oder die aktualisierten Code, aber ich habe gesehen, dass das CoreApp-Projekt während des Build-Prozesses heruntergezogen wurdeVSTS git Submodul Referenzfehler

All dies funktioniert und baut gut auf meinem PC.I verifiziert, dass auf VSTS, habe ich die CoreApp-Datei mit dem Hash und die .gitmodule mit dem Eintrag -

[submodule "Project1/CoreApp"] 
    path = Project1/CoreApp 
    url = https://name.visualstudio.com/_git/CoreApp 

Noch einmal, ich sehe, dass die CoreApp während des Build nach unten gezogen wird -

Copying file from "obj\Release\CoreApp.dll" to "bin\CoreApp.dll". 
CoreApp -> d:\a\1\s\Project1\CoreApp\bin\CoreApp.dll 

Hat auf VSTS der Build-Prozess das neueste Modul Code nach unten ziehen, wenn ein Build zu tun? Weiß jemand was ich falsch mache? Ich ziehe mir die Haare aus und jede Hilfe wird geschätzt. Vielen Dank!

Antwort

0

Bitte überprüfen Sie Ihre VSTS Definition bauen:

In Get Quelle Schritt -> zeigen die erweiterten Einstellungen -> sicherstellen, dass die Kasse Submodule ausgewählt -> Speichern.

enter image description here

enter image description here

Dann bauen Sie Ihre project1 wieder wird die Project1\CoreApp\bin\CoreApp.dll aus Submodul finden.

Um sumodules in Haupt Repo zu aktualisieren, können Sie eine Command Line Aufgabe Schritt nach Get Quellen hinzufügen:

Tool: git

Argumente: submodule foreach "git pull origin master"

enter image description here

+0

habe ich das Kontrollkästchen ausgewählt und auch die Rekursionsebene festgelegt. – Joe

+0

Ich glaube, ich kenne das Problem, aber ich weiß nicht, wie ich es beheben soll. Zuvor habe ich das Submodul aktualisiert und eingecheckt. Die Datei mit dem SHA-Hash (CoreApp), die im VSTS Project1 Repo sitzt, zeigt jedoch immer noch auf die alte Version von CoreApp. Wie aktualisiere ich diese Datei auf die aktualisierte CoreApp-Version? – Joe

+0

Um Submodul zu aktualisieren, müssen Sie nur eine Befehlszeilenaufgabe, Detaileinstellungen in meiner Antwort hinzufügen, können Sie es versuchen. –