2010-04-19 12 views
28

J'ai écrit une classe qui gérera la journalisation interne dans mon application. Maintenant, je veux utiliser cette classe dans un autre projet nouveau et totalement séparé.Partage du code source de la classe C# entre plusieurs projets

Je pourrais simplement copier le fichier dans le nouveau dossier de projet, mais je voudrais n'en avoir qu'une copie à conserver pour que toutes les modifications s'appliquent aux deux projets au fil du temps.

Je peux utiliser le "Ajouter un fichier existant", mais où dois-je mettre le fichier afin que le développeur suivant sache que c'est nécessaire. J'ai déjà eu un dossier «partagé» pour ceci mais une fois ce dossier n'a pas été apporté dans l'ordinateur de développement suivant. Quelle est la meilleure façon d'organiser ceci de manière à ce qu'elle soit la plus logique pour les nouveaux responsables et minimise le risque de rupture de liens dans les projets?

+1

Est-ce que vous voulez vraiment me dire que le partage au niveau source n'est pas possible en C#? –

+0

@Pavel: Ce problème n'est pas vraiment spécifique à C# bien que je cherchais une solution spécifique à C# ici. J'ai déjà rencontré des situations où des fichiers individuels d'un projet étaient manquants car ils se trouvaient dans un autre dossier non envoyé avec le reste des fichiers. – hultqvist

+0

Une réponse exacte à ce que vous cherchez peut être vu dans le post de jorgen ci-dessous. – user912447

Répondre

25

Vous pouvez créer un projet de bibliothèque qui a cette classe de cette façon tout ce que vous avez à faire est d'ajouter une référence à ce projet. Si ce n'est pas une option, vous pouvez utiliser "Clic droit -> ajouter un élément existant -> Ajouter comme lien" de cette façon, vous avez seulement une copie du code, mais il peut exister dans plusieurs projets.

+0

pouvez-vous s'il vous plaît jeter un oeil à ici http://stackoverflow.com/questions/21301360/share-properties-from-child-app-to-base-project – Goofy

5

Brisez votre code d'enregistrement sur un ensemble séparé.

Vous pouvez ensuite inclure cet assembly dans les projets qui doivent utiliser ce journal.

Il garde tout beau et propre et vous n'aurez qu'à maintenir un ensemble de code plutôt que de devoir vous soucier de chaque copie.

1

Créez un nouvel assembly contenant cette classe.

Ensuite, tous vos autres projets peuvent se référer à cet assemblage et utiliser la classe à l'intérieur.

10

Une bibliothèque de classes à partager est la meilleure solution.

Mais vous pouvez ajouter un fichier à un projet VS en tant que lien plutôt que de le copier. Pour ce faire, utilisez le menu déroulant du bouton Ajouter de la boîte de dialogue Ajouter un élément existant.

6

Si vous avez réellement besoin de partager le code source, par exemple si vous avez une version simultanée 32 bits et 64 bits du même assembly (ce qui est parfois nécessaire si vous dépendez du code natif), vous pouvez utiliser la réponse donnée dans ce fil: How do you share code between projects/solutions in Visual Studio?

(Look pour ' « lien » un fichier de code entre deux projets.)

1

Mettez la classe dans un espace de noms unique, puis ajoutez le fichier comme un lien vers tous projets dont vous avez besoin pour l'utiliser. Assurez-vous de placer une instruction using pour cet espace de noms unique dans lequel vous utiliserez la classe, ou vous devrez qualifier complètement chaque utilisation. Pour des situations comme celle-ci, je pense que c'est beaucoup préférable à un assemby, car il ne génère pas de références inutiles, pour quelque chose qui fait partie de votre propre code que vous souhaitez partager entre vos projets.

0

Vous pouvez également utiliser votre système de gestion des versions pour ce faire.

Nous créons généralement le répertoire avec la solution et le projet principal, puis engageons ce répertoire à SVN. Ensuite, toutes les bibliothèques partagées sont liées en utilisant svn: external - de sorte que tous les projets existent dans le même répertoire de solution.

Après commettras tout le monde peut travailler avec la caisse solution toutes les dépendances externes.

Questions connexes