Nous avons beaucoup de bibliothèques internes que nous aimerions partager entre les projets au sein de l'entreprise. Voici quelques-unes des exigences:
- les sources des bibliothèques sont stockées dans des référentiels séparés des projets finaux
- les projets finaux incluent des bibliothèques via NuGet
- il doit être possible d'inspecter facilement le code source d'une bibliothèque donnée tout en travaillant sur un projet final
La configuration de notre référentiel NuGet privé n'est pas un problème, mais la gestion des sources l'est. Nous avons essayé d'exposer les sources via le serveur source et cela fonctionne un peu , mais pas tout à fait: VS télécharge les sources lors du débogage du code externe, mais pas lorsque vous essayez de naviguer vers la définition / implémentation. Fondamentalement, vous ne pouvez accéder au code source que lors du débogage, ce qui n'est pas tout à fait ce dont nous avons besoin.
Donc, les questions sont:
- quels moyens existent pour fournir l'accès au code source des bibliothèques internes sans avoir besoin d'avoir le code dans le même référentiel / solution
- Existe-t-il un moyen de configurer la combinaison de serveurs Symbol / Feed NuGet afin que VS utilise les symboles pour la navigation, pas seulement pour le débogage?
L'utilisation de ReSharper / autres compléments est une option.
c#
source-code
closed-source
nuget
Dyppl
la source
la source
Réponses:
Ce qui devrait fonctionner consiste simplement à extraire le code source du package NuGet et à ouvrir la solution dans une instance distincte de Visual Studio.
Visual Studio a une astuce intéressante pour basculer entre le code dans les instances ouvertes en déterminant ce que vous avez référencé. La première fois que cela m'est arrivé pendant que je déboguais, ce fut une révélation.
Le problème principal auquel vous êtes confronté est de vous assurer que le code extrait pour le package dépendant représente la même version que votre référence NuGet dans le projet principal. Pas de problème si vous suivez une politique de toujours construire avec la version la plus récente de votre package.
Un autre avantage de cette approche est que si le package doit changer, vous pouvez effectuer la modification sur place.
la source
Vous pouvez peut-être utiliser https://github.com/GitTools/GitLink . Il ajoute un lien dans le fichier pdb pointant vers le référentiel afin que Visual Studio récupère le code source à partir de là - et il vous suffit ensuite d'inclure le fichier pdb dans votre package nuspec et n'aurez pas besoin d'un serveur source.
la source
Ce n'est donc pas une solution parfaite, mais vous mentionnez que vous pouvez éventuellement utiliser Resharper; avec dotPeek et resharper, vous pouvez accéder au démontage du code d'origine, c'est ce que j'utilise au travail, où nous avons une configuration similaire à la vôtre.
Je trouve une combinaison du Symbol Server que vous avez mentionné et parcourir le démontage est normalement suffisant pour comprendre ce qui se passe.
J'espère que cela pourra aider.
Edit: Après avoir relu votre question, je me rends compte que vous demandez spécifiquement de pouvoir parcourir le code source, ce qui n'est pas le cas. Espérons néanmoins que ce sera utile à quelqu'un.
la source