3

J'ai 3 projets .net.Dépendances de projet entre plusieurs versions de Visual Studio

Project1.dll est généré par un projet VS2008.

Project2.dll est généré par un projet VS2005 qui référence Project1.dll. Project3.dll est généré par un projet VS2008 qui référence Project1.dll et Project2.dll.

Pour l'instant, je compile Project1.dll et le copie manuellement à l'endroit où Project 2 peut le ramasser.

Ensuite, je compile Project2.dll et le copie manuellement et Project1.dll à l'endroit où le projet 3 peut les ramasser.

Évidemment, je fais quelque chose de mal (manuel). Quelle est la bonne façon de garder les références de mes projets à jour?


La mise à jour de Project2 vers VS2008, puis la création d'une solution contenant les 3 projets ne sont pas une option pour le moment. Nous avons un plugin Visualstudio 3ème partie qui ne fonctionne pas encore dans VS2008. Project2 doit rester dans VS2005

La mise à jour de Project1 et Project3 vers VS2005, puis la création d'une solution ne sont pas non plus une option. Nous nous appuyons sur les fonctionnalités C# 3.0 et .net 3.5 de ces projets.

Répondre

4

David, Probablement la meilleure option serait d'avoir un dossier de construction commun pour les trois projets. Cela peut être fait dans le projet Propriétés du projet-> Construire -> Chemin de sortie. Puis pointez les références vers le dossier de sortie. De cette façon, chaque fois que vous construisez l'un des projets inférieurs, les projets les plus élevés auront les dernières versions. Vous pouvez également définir le chemin d'accès par configuration (Debug, Release), vous n'avez donc pas besoin de le changer pour chaque type de construction.

+0

C'est ce qui fonctionne pour mon scénario. –

0

Nous utilisons un script de construction qui gère les dépendances, construit les DLL et fait ce que vous faites manuellement.

+0

D'accord, il existe probablement des façons plus élégantes de le faire. Je suis intéressant d'entendre parler d'eux aussi! – itsmatt

2

Que diriez-vous d'un événement de pré-construction pour Project3, qui sort et utilise un fichier de commandes pour construire Project1 le copier dans le dossier Project2, puis générer projet2 et le copier dans le dossier projet3.

+0

J'ai fini par utiliser un événement post-construction pour gérer une nuance dans mon cas. Merci pour le conseil. –

0

Une astuce que j'ai utilisée dans le passé est de tout déplacer à 2008. Ensuite, je configure une solution spéciale en 2005 pour le projet deux et l'utiliser pour travailler avec l'addin. Pour que cela fonctionne, cela dépend du comportement du deuxième projet en 2008.

1

Je vous recommande de partager les fichiers csproj/vbproj entre les solutions. Le format des fichiers de projet est compatible entre les deux versions de studio (les fichiers de solutions ne le sont pas, cependant) et tant que vos projets VS2008 ciblent le runtime 2.0, vous ne devriez pas avoir de problèmes pour les compiler. Cela vous permettra de référencer les projets, qui s'occuperont des dépendances.

Le seul endroit où cela devient poilu est si vous avez un projet Web qui doit fonctionner entre les deux versions de studio. Dans ce cas, il y a quelques modifications aux fichiers de projet qui pointeront vers les fichiers cible MSBuild corrects.

+0

Cela fonctionnerait pour la question telle que écrite. Mon scénario est légèrement différent.Il y a un strict besoin de garder Project2 hors de 2008 ... juste ma vie bizarre. –