5

J'ai écrit une bonne quantité de logiciels au cours des dernières années, dont la plupart ont tous tendance à partager une ou plusieurs bibliothèques communes. (La bibliothèque la plus commune, étant celle que j'utilise pour appeler des procédures stockées SQL et renvoyer des tableaux d'objets)Méthodes de gestion du code source

Je ne suis pas satisfait de la façon dont je gère les bibliothèques, et je cherche des suggestions pour améliorer la façon Je travaille.

La première fois que j'ai créé ce qui est maintenant une bibliothèque partagée, j'ai ajouté la bibliothèque en tant que projet de bibliothèque de classes distinct au sein de la solution.

Maintenant, quand je lance une nouvelle solution et je sais que je vais avoir besoin d'une bibliothèque que j'ai déjà, je vais trouver le projet de la bibliothèque et copier les fichiers dans la nouvelle solution. Cela me laisse avec plusieurs copies du même projet de bibliothèque pointé autour de mon système de fichiers (et le serveur SVN), et il ne me semble pas juste.

Existe-t-il une meilleure façon de travailler, de sorte que je n'ai qu'une copie principale de cette bibliothèque que toutes les solutions partagent, plutôt que chaque solution ayant sa propre copie du projet de bibliothèque?

Répondre

5

Construisez simplement la bibliothèque une fois, et référencez le binaire compilé de votre projet qui doit l'utiliser.

En studio visuel, faites un clic droit sur le projet et cliquez sur "ajouter référence", puis choisissez l'onglet "parcourir" et localisez votre bibliothèque binaire.

(Vous aurez évidemment besoin de distribuer l'ensemble de la bibliothèque ainsi que votre application)

+0

Merci. Je ne peux pas croire que j'ai manqué quelque chose d'aussi fondamental, après des années de travail dans Visual Studio. – Bryan

+0

Pas sûr que ce soit la meilleure réponse. L'ajout d'un binaire signifie que si le projet partagé change, vous devrez le recompiler, puis recompiler toutes les solutions dépendantes qui le référencent, ce qui pourrait entraîner des problèmes de dépendance.Je suggère de l'ajouter comme référence de projet à la place – zebrabox

+0

@zebrabox: Je ne suis pas, N'est-ce pas exactement ce que dit le post de Simon? – Bryan

1

je suggère la compilation de votre bibliothèque dans une dll qui peut être ajouté comme une référence à tout autre projet sur lequel vous travaillez. Ensuite, vous n'avez pas besoin de copier les fichiers source partout.

2

Votre sentiment est tout à fait raison. Il devrait y avoir qu'un seul maître de la bibliothèque sources.

Dans notre magasin, nous avons plusieurs projets de bibliothèques partagées utilisées par plusieurs produits. Nous considérons ces bibliothèques comme des produits et les traitons en conséquence. Plus précisément, lorsqu'un projet a besoin de l'une de ces bibliothèques, nous mettons une version compilée de la bibliothèque dans un dossier lib du projet. Nous supprimons le besoin de copier la source, et notre projet ne fait référence qu'à une copie stable de la DLL.

est ici une structure de l'échantillon dans le référentiel

/LibraryX   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../LibraryX <- project folder 
     ../lib  <- thirdparty libraries used by LibraryX 

/ProductY   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../ProductY <- project folder 
     ../lib  <- thirdparty libraries 
         used by ProductY, e.g. a copy of LibraryX.dll 

Ainsi, dans le projet ProductY, plutôt que d'inclure une copie du projet LibraryY vous ajoutez une référence au LibraryX.dll situé dans la dossier lib.

+0

C'est exactement la structure que je vise. Merci beaucoup. – Bryan

1

Vous devez juste construire une dll avec votre bibliothèque, puis simplement référence à elle ..

Références> Ajouter Référence VS.