2009-12-09 10 views
2

J'ai une solution C# qui inclut plusieurs sites Web. Ces sites Web contiennent des données communes (par exemple, des images et des extensions jQuery partagées). Actuellement, les données sont incluses dans chaque projet. Évidemment, nous sommes confrontés à des problèmes de synchronisation et à mesure que ces répertoires de données deviennent plus volumineux, nous déplaçons de plus en plus de données. Nous pourrions encoder les liens vers les serveurs sur le serveur de production, mais je pense que nous aimerions éviter cela (sans parler du fait que nous utilisons le serveur cassini intégré pour nos tests, et je n'ai aucune idée de la facilité avec laquelle travaillerait). Y a-t-il quelque chose que j'ai négligé pour une manière portable et maintenable de faire ceci?Comment ajouter du contenu statique qui doit être partagé entre des projets dans une solution Visual Studio

Précisions: Le contenu qui doit être partagé sont situés dans des répertoires (par exemple des images /, js /)

Répondre

4

Vous pouvez ajouter ces fichiers au projet sous forme de fichiers liés - de cette façon, ils ne sont pas physiquement copiés dans le répertoire du projet mais sont toujours inclus dans le projet. Vous pouvez juste vous soucier de maintenir la valeur d'un contenu statique d'un dossier et savoir que chaque fois que vous construisez vos solutions, vous utiliserez la version de ce dossier. Pour ajouter un fichier lié dans Visual Studio, faites un clic droit sur le projet, appuyez sur add-> fichier existant, puis dans la boîte de dialogue de sélection de fichier, cliquez sur la petite flèche déroulante à côté du bouton "ajouter" et choisissez "Ajouter en tant que lien ".

+2

c'est très proche, mais apparemment, vous ne pouvez pas ajouter un dossier en tant que lien. J'ai ajouté une précision à la question. Pardon. – OldTroll

+0

Avez-vous besoin de tous les fichiers de ce dossier dans chaque projet? Si ce n'est pas le cas, il suffit d'inclure ceux dont vous avez besoin pour ce projet spécifique. Considérez-vous conserver les fichiers en dehors du projet et utiliser des liens dans les pages? Vous avez dit que vous vouliez éviter cela car les chemins peuvent différer entre la production et le développement, mais si vous utilisez quelque chose comme Page.ResolveUrl() d'asp.net, vous devriez être capable de résoudre ce problème. De plus, cela fonctionnera si jamais vous changez votre application pour utiliser des tables de routage ou autrement changer votre structure de répertoire. –

0

La solution la plus rapide serait de créer des répertoires virtuels sur votre serveur de production pour pointer vers un emplacement unique de vos répertoires de données.

Cela imiterait les répertoires de données dans vos différentes solutions.

+0

sans rapport avec la question. –

+0

@LeoCai Il est lié à la question dans la mesure où il suggère une solution pour résoudre ce problème du côté du déploiement au lieu de créer une solution de contournement plutôt fragile sur le plan du développement. – Filburt

1

Je sais que cette question a été posée il y a quelques années, mais la réponse acceptée ne semble plus être pertinente. Depuis que Microsoft a lancé Universal Windows Store Apps, il est maintenant possible de créer des projets partagés et de les référencer dans d'autres projets de la même manière que nous ferions référence aux bibliothèques de classes. Toutefois, cette fonctionnalité n'est pas prise en charge immédiatement pour tous les types de projets.

Tout ce que vous devez faire est d'installer Shared Project Reference Manager, qui est disponible dans la galerie Visual Studio. Le projet partagé apparaît ensuite dans la boîte de dialogue Ajouter un nouveau projet.