Gibt es eine Möglichkeit, einen Verweis auf eine Assembly im Lösungsverzeichnis relativ hinzuzufügen, damit beim Ein- und Auschecken in ein Repository in Projekten korrekt auf ihn verwiesen wird?
Gibt es eine Möglichkeit, einen Verweis auf eine Assembly im Lösungsverzeichnis relativ hinzuzufügen, damit beim Ein- und Auschecken in ein Repository in Projekten korrekt auf ihn verwiesen wird?
Antworten:
Um Pavel Minaevs ursprünglichen Kommentar zu erweitern: Die GUI für Visual Studio unterstützt relative Referenzen mit der Annahme, dass Ihre .sln die Wurzel der relativen Referenz ist. Wenn Sie also eine Lösung haben C:\myProj\myProj.sln
, werden alle Referenzen, die Sie in Unterordnern von hinzufügen, C:\myProj\
automatisch als relative Referenzen hinzugefügt.
Gehen Sie wie C:/myReferences/myDLL.dll
folgt vor, um eine relative Referenz in einem separaten Verzeichnis hinzuzufügen, z.
Bearbeiten Sie den <HintPath> so, dass er gleich ist
<HintPath>..\..\myReferences\myDLL.dll</HintPath>
Dies verweist nun C:\myReferences\myDLL.dll
.
Hoffe das hilft.
Ja, erstellen Sie einfach ein Verzeichnis in Ihrer Lösung wie lib / und fügen Sie dann Ihre DLL zu diesem Verzeichnis im Dateisystem hinzu und fügen Sie sie im Projekt hinzu (Hinzufügen-> Vorhandenes Element-> usw.). Fügen Sie dann die Referenz basierend auf Ihrem Projekt hinzu.
Ich habe das mehrmals unter svn und unter cvs gemacht.
In VS 2017 ist es automatisch. Also Add Reference
wie immer.
Beachten Sie, dass im Reference Properties
absoluten Pfad angezeigt wird, aber .vbproj/.csproj
relativ verwendet wird.
<Reference Include="NETnetworkmanager">
<HintPath>..\..\libs\NETnetworkmanager.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
Der einfachste Weg, dies zu erreichen, besteht wahrscheinlich darin, einfach den Verweis auf die Assembly hinzuzufügen und dann (manuell) die Textdarstellung des Verweises in der entsprechenden Visual Studio-Projektdatei (Erweiterung .csproj) so zu patchen, dass sie relativ wird.
Ich habe dies in VS 2005 viele Male ohne Probleme getan.
Ich könnte hier weg sein, aber es scheint, dass die Antwort ziemlich offensichtlich ist: Sehen Sie sich Referenzpfade in den Projekteigenschaften an. In unserem Setup habe ich unseren allgemeinen Repository-Ordner wie folgt zum Ref-Pfad-GUI-Fenster hinzugefügt
Auf diese Weise kann ich meine DLLs (bereit zur Veröffentlichung) in diesen Ordner kopieren und jeder Entwickler erhält jetzt die aktualisierte DLL jedes Mal, wenn er aus diesem Ordner erstellt wird.
Wenn die DLL in der Lösung gefunden wird, sollte der Builder die lokale Version gegenüber der veröffentlichten Teamversion priorisieren.
Wie bereits erwähnt, können Sie die .csproj
Datei Ihres Projekts manuell bearbeiten , um sie manuell anzuwenden.
Ich habe auch festgestellt, dass Visual Studio 2013 versucht, einen relativen Pfad auf den Referenzhinweispfad anzuwenden, wahrscheinlich aufgrund des Versuchs, die Projektdatei portabler zu machen.