2016-05-05 4 views
0

Ich habe eine einfache Klassenbibliothek, die sich derzeit in lokal gehosteten SVN befindet. Ich arbeite an einem MVC-Projekt, das innerhalb von BitBucket gehostetem GIT angesiedelt ist. Die Klassenbibliothek ist ein Wrapper für einen Produktions-Webdienst, auf den ich in meinem MVC-Projekt verweisen muss. Die Klassenbibliothek wird weiterhin aktiv gepflegt und sieht Updates etwa einmal im Monat vor. Ich bin auf der Suche nach der besten Möglichkeit, die Klassenbibliothek in mein MVC-Projekt einzubinden oder zu referenzieren, ohne die Quellcodeverwaltung zu sehr zu stören. Hier sind die Ideen, die ich über Online gekommen:Einbinden einer Klassenbibliothek von SVN (Local) in ein Projekt, das in Git gehostet wird (BitBucket)

  • Erstellen Sie die Klassenbibliothek von der Quelle, umfassen die kompilierte DLL in meinem MVC-Projekt und überwachen SVN checkins für diese Klassenbibliothek, damit ich weiß, wenn die DLL werden muss erneut -gebaut.
  • Fügen Sie die Quelle für die Klassenbibliothek als Teil der Lösung meines MVC-Projekts ein und lassen Sie die Klassenbibliothek als Teil der MSBuild-Tasks des MVC-Projekts erstellen.
  • Ich bin kein GIT-Guru, aber nachdem ich die Dokumentation ein wenig gelesen habe, glaube ich nicht, dass ein GIT-Subtree in diesem Fall funktionieren würde, da das externe Repository, das ich referenzieren möchte, in SVN gehostet wird, nicht git.
  • Ich glaube auch nicht, dass ein GIT-Submodul auch hier geeignet wäre.

Gibt es eine einfache Methode der Referenzierung dieser Klassenbibliothek in meinem MVC-Projekt? Wenn es hilft, habe ich nicht das Gefühl, dass ich jemals Änderungen für diese Klassenbibliothek an SVN zurücksenden werde. Ich werde nur das Repo lesen und keine Checkins durchführen.

Antwort

0

Nach umfangreichen Recherchen habe ich folgendes:

aktualisieren meine gitignore zu blockieren .svn

Kasse das SVN-Projekt in ein Unterverzeichnis innerhalb der Lösung MVC-Projekt wie SolutionDir \ SVNProjectDir

Innerhalb meine MVC csproj-Datei des Projekts, habe ich folgendes:

<Target Name="BeforeBuild"> 
    <Exec Command="svn update $(MSBuildProjectDirectory)\..\SVNProjectDir" /> 
</Target> 

Dies zwingt das MVC-Projekt neuesten für den SVN zu holen Projekt vor dem Bau. Das Endergebnis ist, dass der Code, den ich für diese Klassenbibliothek benötige, in unserem Git-Quellcode-Steuerelement für alle Benutzer enthalten ist.

Es ist wichtig zu beachten, dass die Vor-Build-Aufgabe nicht das Erstellen des Projekts stoppt, wenn ein Benutzer keinen SVN-Client installiert oder das SVN-Verzeichnis innerhalb des Projekts nicht ordnungsgemäß eingerichtet hat. Dies ist in meinem Team akzeptabel, aber möglicherweise nicht für alle akzeptabel.

Verwandte Themen