2010-09-26 3 views
3

C'est un problème qui me mange depuis un moment, et je n'ai tout simplement pas trouvé une bonne solution (sans jeu de mots) pour cela. J'utilise Visual Studio 2010 avec Subversion et Ankhsvn. Cela fonctionne très bien, cependant, mon plus gros problème est qu'il ne récupère et ne gère que les fichiers "inclus dans le projet". C'est très bien dans de nombreuses situations, mais ça craint quand vous voulez un dossier avec des objets que vous voulez inclure dans la solution, mais que vous ne voulez pas avoir dans le projet lui-même (dans ce cas un projet web).Ajout de bibliothèques tierces au contrôle de source de Visual Studio

Dans ce cas, je souhaite inclure des DLL tierces dans le contrôle de source (afin qu'elles puissent être mises à jour lors de la synchronisation avec le contrôle de version). Je ne veux pas que les développeurs aient à installer la DLL tierce séparément. Ce qui se passe normalement, c'est que vous référencez les DLL à partir d'un autre emplacement et qu'ils sont copiés dans votre dossier bin au moment de la compilation.

Je ne souhaite pas les inclure dans le projet, car je ne les blâme pas de les copier sur le serveur web lorsque je publie le site (autrement que via le répertoire bin où ils devraient être). J'ai pensé à créer un projet séparé pour ceux-ci, mais cela créerait un DLL inutile sans but qui serait alors copié dans le dossier bin parce qu'il est référencé. J'ai également essayé de les vérifier à partir du dossier bin, mais cela a causé un certain nombre de problèmes où les fichiers ne se sont pas synchronisés prolerly, avec subversion disant des choses sur un dossier déjà version étant présent, etc. Cela semble être un problème de subversion ou d'ankhsvn plutôt qu'un problème d'atelier visuel. En tant que tel, j'essaie de garder le dossier bin intacte par le contrôle de version.

Comment avez-vous résolu ce problème dans vos projets?

Répondre

5

Voici comment nous le faisons dans notre projet.

Folder Structure

Nous avons un dossier SourceCode qui a les sous-dossiers pour les projets qui contiennent le code.

De plus, ceci a un dossier appelé Bibliothèque qui a la bonne version de n'importe quelle DLL tierce que nous utilisons. Ce dossier dans le contrôle de version et donc tout le monde a toujours la bonne version de la 3ème partie dll

Toutes les références dans les projets à dll 3rd party sont relatives à partir de ce dossier Library.

Étant donné que tout le monde a le dossier SourceCode sur leur machine, cela fonctionne sans problème.

EDIT: image ajoutée de la solution de dossiers avec le contenu de la bibliothèque à elle VS Solution Folder

+0

qui ne répond pas à ma question. J'ai spécifiquement dit que je ne voulais pas faire les choses de cette façon parce que je ne veux pas que la DLL soit envoyée au serveur dans ce dossier lors de la publication. L'alternative à cela est de spécifier qu'ils ne soient pas inclus dans le projet, ce qui signifie qu'ils ne sont pas syncronisés via ankhsvn, et nécessiteraient de se synchroniser avec quelque chose comme Tortiose, ce qui est une douleur à devoir synchroniser à deux endroits. –

+1

Vous ne publiez pas de dossier. Vous publiez un projet. En tant que tel, je ne suis pas sûr de ce que vous dites. Je n'utilise pas TortioseSVN, seulement ankhsvn. Je ne veux pas utiliser les deux.En tant que tel, tout le contrôle de version doit se produire avec Visual Studio –

+0

Ok, donc si votre projet d'application Web est dans le dossier des sites Web, comment synchronisez-vous votre arborescence source? Je présume à travers quelque chose comme TortioseSVN. Dans mon cas, je ne veux pas utiliser TortioseSVN pour syncroniser, je veux seulement utiliser Ankhsvn. Et, puisque AnkhSVN ne fait que sycroniser les fichiers inclus dans la solution Visual Studio ... Avez-vous déjà compris? –

Questions connexes