Wie teilen Sie Code zwischen Projekten / Lösungen in Visual Studio?
Habe ich zwei Lösungen, die gemeinsamen code, also möchte ich entpacken Sie es heraus und teilen es zwischen Ihnen. Des weiteren würde ich gerne freigeben zu können, die Bibliothek selbständig, weil es sein könnte nützlich, um andere.
- Was ist der beste Weg, es zu tun mit Visual Studio 2008?
- Ist ein Projekt in mehr als eine Lösung?
- Habe ich eine separate Lösung für die separate piece of code?
- Kann die Lösung abhängig von einem anderen?
Kommentar zu dem Problem
Seine 2014. Nuget ist die Antwort.
@Ravi wollte ich Modularisieren Sie eine Visual Studio-Web-Anwendung entwickelt, die an mein Büro.Jedoch, wenn ich versuche zu denken, die Modularisierung der Visual Studio-Web-Anwendung in verschiedenen Web-Anwendungen, die die zirkuläre Abhängigkeit zwischen den Komponenten kommt, das ist Falsch.Zum Beispiel, ich kann nicht Modularisieren der POCO-Projekt für jedes geplante Web-Anwendung, weil es zu viel Abhängigkeit. Gibt es eine Möglichkeit, die ich verwenden könnte Nuget zu helfen, mit der Modularisierung?
InformationsquelleAutor der Frage pupeno | 2009-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eines Projekts auf die verwiesen werden kann, die von mehreren Lösungen.
Setzen Sie Ihre Bibliothek oder core code in einem Projekt, dann referenzieren Sie das Projekt in beiden Lösungen.
InformationsquelleAutor der Antwort ilivewithian
Können Sie den "link" eine code-Datei, die zwischen zwei Projekten. Rechten klicken Sie auf Ihr Projekt, wählen Sie
Add
->Existing item
, und klicken Sie dann auf den Pfeil nach unten neben derAdd
- Taste:In meiner Erfahrung, die Verlinkung ist einfacher als das erstellen einer Bibliothek. Verlinkte code-Ergebnisse in einer einzigen ausführbaren Datei, die mit einer einzigen version.
InformationsquelleAutor der Antwort Andomar
File > Add > Existing Project...
lassen Sie Projekte hinzufügen, um Ihre aktuelle Lösung sein. Nur das hinzufügen dieser, da keines der oben genannten Beiträge zeigen, dass aus. Dieses können Sie auch das gleiche Projekt in mehreren Lösungen.InformationsquelleAutor der Antwort Aseem Kishore
Du kann zählen ein Projekt in mehr als eine Lösung. Ich glaube nicht, dass ein Projekt hat ein Konzept, die Lösung, es ist Teil. Allerdings, eine andere alternative ist, um die erste Lösung zu bauen, um einige bekannte Ort, und verweisen Sie die kompilierte binaries. Dies hat den Nachteil, dass Sie müssen ein wenig arbeiten, wenn Sie wollen, um auf unterschiedliche Versionen basierend auf, ob Sie Gebäude in der release-oder debug-Konfigurationen.
Ich glaube nicht, dass Sie machen kann eine Lösung tatsächlich abhängig von einem anderen, aber Sie können führen Sie Ihre automatisierten builds in eine entsprechende Bestellung über benutzerdefinierte scripts. Im Grunde behandeln Sie Ihre Allgemeine Bibliothek, als wäre es eine andere Dritte Partei-Abhängigkeit wie NUnit etc.
InformationsquelleAutor der Antwort Jon Skeet
Können Sie die wild-card-inline mit der folgenden Technik (das ist die Art und Weise, in der @Andomar die Lösung ist gespeichert .csproj)
Setzen:
Wenn Sie ausblenden möchten Sie die Dateien und/oder verhindern, dass die wild-Karte ausgebaut, wenn Sie hinzufügen oder entfernen Sie ein Element aus einem "virtuellen" bestehenden Eintrag " Ordner wie
MySisterProject
oben.InformationsquelleAutor der Antwort Ruben Bartelink
Würden Sie einfach erstellen Sie eine separate Klasse-Bibliothek-Projekt zu enthalten, die den gemeinsamen code. Es müssen nicht Teil irgendeiner Lösung, die es verwendet. Verweis auf die Klasse-Bibliothek-Projekt, die es braucht.
Der einzige trick ist, dass Sie brauchen, um einen Datei-Verweis zu Verweis dem Projekt, da es nicht Teil der Lösungen, die sich darauf beziehen. Dies bedeutet, dass der tatsächliche output-assembly wird in eine Lage, die zugegriffen werden kann, indem jemand ein Projekt erstellen, das die es verweist. Diese kann getan werden, indem man die Montage auf einer Netzwerkfreigabe, zum Beispiel.
InformationsquelleAutor der Antwort John Saunders
Extrahieren Sie den gemeinsamen code in eine Klasse-Bibliothek-Projekt, und fügen Sie das Klasse-Bibliothek-Projekt zu Ihren Lösungen. Dann können Sie fügen Sie einen Verweis auf den common code aus anderen Projekten, indem ein Projekt-Verweis auf die Bibliothek-Klasse. Der Vorteil, eine Projekt-Referenz im Gegensatz zu einem binären/Montage Referenz ist, dass wenn Sie Ihre build-Konfiguration debug, release, custom, etc, die Allgemeine Klasse-Bibliothek-Projekt wird gebaut werden basierend auf dieser Konfiguration auch.
InformationsquelleAutor der Antwort Mehmet Aras
Sie könnten das gleiche Projekt in mehr als eine Lösung, aber du bist garantiert Probleme bekommen, irgendwann die Straße hinunter (relative Pfade ungültig werden, wenn Sie sich bewegen, Verzeichnisse, um zum Beispiel)
Nach Jahren des Kampfes mit dieser habe ich endlich eine brauchbare Lösung, aber es erfordert die Verwendung von Subversion zur Quellcodeverwaltung (was nicht schlecht ist)
Auf der Verzeichnisebene Ihrer Lösung, fügen Sie ein svn:externals - Eigenschaft verweist auf die Projekte, die Sie aufnehmen möchten in Ihre Lösung. Subversion zieht das Projekt aus dem repository und speichern Sie in einem Unterordner Ihres solution-Datei. Ihre Lösung Datei kann einfach relative Pfade verwenden, referenzieren Sie Ihr Projekt.
Wenn ich etwas mehr Zeit habe, werde ich erklären dies im detail.
InformationsquelleAutor der Antwort Philippe Leybaert
Ist es eine gute Idee, um erstellen Sie eine dll-Bibliothek-Klasse enthält alle Allgemeinen Funktionen. Jede Lösung kann mit einem Verweis auf diesen dll indepently, unabhängig von anderen Lösungen.
Infact , ist dies, wie unsere Quellen sind organisiert in meine Arbeit (und ich glaube auch in vielen anderen Orten).
Durch die Art und Weise , die Lösung kann nicht erzwungen, aber auf eine andere Lösung.
InformationsquelleAutor der Antwort user88637
Wenn man versucht, gemeinsame Nutzung von code zwischen zwei verschiedenen Projekt-Typen (I. e.: desktop-Projekt und ein mobile-Projekt), kann man sich in der gemeinsamen Lösungen Ordner. Ich habe das für mein Aktuelles Projekt, als die mobile-und desktop-Projekte erfordern beide Klassen identisch sind, nur in 1 Datei. Wenn Sie diesen Weg gehen, eines der Projekte, die die Datei verknüpften änderungen daran vornehmen können und alle Projekte, die umgebaut werden, gegen diejenigen, die verpasst.
InformationsquelleAutor der Antwort Stevoni
Es ist ein sehr gutes Beispiel für die Verwendung von "hinzufügen bestehende Datei-links" bei der Wiederverwendung von code über Projekte hinweg, und das ist, wenn Sie brauchen, um Referenz und unterstützen unterschiedliche Versionen von abhängigen Bibliotheken.
Mehrere Baugruppen mit Verweise auf verschiedene externe Baugruppen ist nicht leicht, etwas anderes zu tun, ohne duplizieren der code, oder der Verwendung von tricks, mit source-code-control.
Ich glaube, es ist am einfachsten zu pflegen, ein Projekt zur Entwicklung und unit-test, dann " Bau " - Projekte mit bestehender Datei-links, wenn Sie benötigen, um erstellen Sie die Baugruppen, die auf verschiedene Versionen von diesen externen Baugruppen.
InformationsquelleAutor der Antwort Rick Sipin
Einen einfacheren Weg, um eine class-Datei eines Projekts in anderen Projekten ist, indem das Projekt in der bestehenden Lösung und dann das Hinzufügen der DLL-Verweis des neuen Projekts in das bestehende Projekt ein. Schließlich können Sie die Methoden der Klasse Hinzugefügt von decalring using-Direktive am oberen Rand der für jede Klasse.
InformationsquelleAutor der Antwort Amarendra K
Beiden wichtigsten Schritte sind
1 - Erstellen einer C++ - dll
In visual studio
Header-Datei code
Cpp-Datei
Überprüfen Sie Diese
diese option sollte Dynamische Bibliothek(.dll) und erstellen Sie die Projektmappe/das Projekt jetzt.
first_dll.dll - Datei erstellt, in Ordner "Debug"
2 - Verknüpfung in C# - Projekt
Open C# - Projekt
Fügen Sie diese Zeile oben in C# - Projekt
Nun die Funktion aus der dll aufgerufen werden können mit unten-Anweisung in eine Funktion
Ich erstellte dll in c++ - Projekt in VS2010 und verwendet es in VS2013 C# - Projekt.Es funktioniert gut.
InformationsquelleAutor der Antwort Croko
Können Sie host ein interne NuGet-Server und teilen die gemeinsamen Bibliotheken, die weitergegeben werden in andere Projekte intern und extern.
Weiter auf dieser Lesen
InformationsquelleAutor der Antwort Si Zi