Wir haben viele interne Bibliotheken, die wir gerne zwischen Projekten innerhalb des Unternehmens teilen möchten. Dies sind einige der Anforderungen:
- Bibliotheksquellen werden in von Endprojekten getrennten Repositorys gespeichert
- Zu den Endprojekten gehören Bibliotheken über NuGet
- Es muss möglich sein, den Quellcode für eine bestimmte Bibliothek während der Arbeit an einem Endprojekt einfach einzusehen
Das Einrichten unseres privaten NuGet-Repositorys ist kein Problem, das Verwalten von Quellen jedoch. Wir haben versucht, die Quellen über den Quellserver verfügbar zu machen, und das funktioniert, aber nicht ganz: VS lädt die Quellen beim Debuggen von externem Code herunter, aber nicht, wenn Sie versuchen, zur Definition / Implementierung zu navigieren. Grundsätzlich kann man beim Debuggen nur auf den Quellcode zugreifen, was nicht ganz das ist, was wir brauchen.
Die Fragen sind also:
- Welche Möglichkeiten bestehen, um den Zugriff auf den Quellcode interner Bibliotheken zu ermöglichen, ohne dass der Code in demselben Repository / derselben Lösung enthalten sein muss?
- Gibt es eine Möglichkeit, die Kombination Symbolserver / NuGet-Feed so einzurichten, dass VS die Symbole nicht nur zum Debuggen, sondern auch zur Navigation verwendet?
Die Verwendung von ReSharper / anderen Add-Ins ist eine Option.
c#
source-code
closed-source
nuget
Dyppl
quelle
quelle
Antworten:
Was funktionieren sollte, ist einfach das Auschecken des Quellcodes für das NuGet-Paket und das Öffnen der Lösung in einer separaten Instanz von Visual Studio.
Visual Studio hat einen tollen Trick, um in offenen Instanzen zwischen Code zu wechseln, indem Sie herausfinden, worauf Sie verwiesen haben. Das erste Mal, dass mir dies während des Debuggens passiert ist, war eine Offenbarung.
Das Hauptproblem besteht darin, sicherzustellen, dass der ausgecheckte Code für das abhängige Paket dieselbe Version wie Ihre NuGet-Referenz im Hauptprojekt darstellt. Kein Problem, wenn Sie immer die aktuellste Version Ihres Pakets verwenden.
Ein weiterer Vorteil dieses Ansatzes besteht darin, dass Sie die Änderung sofort vornehmen können, wenn das Paket geändert werden muss.
quelle
Möglicherweise können Sie https://github.com/GitTools/GitLink verwenden . Es fügt einen Link in die pdb-Datei ein, der auf das Repository verweist, sodass Visual Studio den Quellcode von dort abruft. Anschließend müssen Sie die pdb-Datei nur noch in Ihr nuspec-Paket aufnehmen und benötigen keinen Quellserver.
quelle
Es ist also keine perfekte Lösung, aber Sie erwähnen, dass Sie optional Resharper verwenden können. Mit DotPeek und Resharper können Sie zur Zerlegung des ursprünglichen Codes navigieren. Dies ist das, was ich bei der Arbeit verwende, wo wir ein ähnliches Setup haben wie bei Ihnen.
Ich finde, dass eine Kombination des von Ihnen erwähnten Symbol-Servers und das Durchsuchen der Demontage normalerweise ausreichen, um herauszufinden, was los ist.
Hoffentlich hilft das.
Bearbeiten: Nach dem erneuten Lesen Ihrer Frage stelle ich fest, dass Sie speziell nach dem Durchsuchen des Quellcodes fragen, was dies nicht ist. Trotzdem wird es hoffentlich jemandem nützlich sein.
quelle