265 votes

Comment voulez-vous partager du code entre les projets/solutions de Visual Studio?

J'ai deux solutions qui ont en commun certaines de code, donc je voudrais l'extraire et de le partager entre eux. En outre, je voudrais être en mesure de libérer la bibliothèque de façon indépendante, car elle pourrait être utile à d'autres.

  • Quelle est la meilleure façon de le faire avec Visual Studio 2008?
  • Est un projet présent dans plus d'une solution?
  • Dois-je avoir une solution distincte pour la feuille de code?
  • Peut une solution dépend d'un autre??

274voto

Andomar Points 115404

Vous pouvez "lien" d'un fichier de code entre les deux projets. Cliquez-droit sur votre projet, choisissez Add -> Existing item, puis cliquez sur la flèche vers le bas à côté de l' Add bouton:

alt text

Dans mon expérience, la liaison est plus simple que de créer une bibliothèque. Lié résultats de code dans un seul fichier exécutable avec une seule et unique version.

81voto

ilivewithian Points 7648

Un projet peut être référencé par plusieurs solutions.

Mettez votre bibliothèque ou une base de code dans un projet, puis de référence de ce projet dans les deux solutions.

41voto

Aseem Kishore Points 1972

File > Add > Existing Project... vous permettra d'ajouter des projets à votre solution actuelle. Juste en ajoutant cette aucun des ci-dessus affiche le signaler. Cela vous permet d'inclure le même projet dans de multiples solutions.

26voto

Ruben Bartelink Points 23945

Vous pouvez wild-card inline en utilisant la technique suivante (qui est la voie dans laquelle @Andomar la solution est enregistré dans l' .csproj)

<Compile Include="..\MySisterProject\**\*.cs">
  <Link>_Inlined\MySisterProject\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>

Mettre dans:

    <Visible>false</Visible>

Si vous souhaitez masquer les fichiers et/ou empêcher la wild-card inclut d'être développé si vous ajouter ou de supprimer un élément à partir d'un "virtuel existant l'article" dossier comme MySisterProject - dessus.

25voto

Jon Skeet Points 692016

Vous pouvez inclure un projet en plus d'une solution. Je ne pense pas qu'un projet a un concept de la solution à laquelle il appartient. Cependant, une autre alternative est de faire la première génération de solution à certains endroits bien connus de référence et les binaires compilés. Ceci a l'inconvénient que vous aurez besoin de faire un peu de travail si vous voulez faire référence à des versions différentes selon que vous êtes en train de construire en release ou debug configurations.

Je ne crois pas que vous pouvez faire une solution qui dépend en fait de l'autre, mais vous pouvez effectuer votre automatisé construit dans un ordre approprié via des scripts personnalisés. Fondamentalement traiter votre bibliothèque commune, comme si c'était un autre tiers de la dépendance comme NUnit etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X