0

J'expérimente avec Prism, et j'ai rencontré un certain nombre d'inconvénients causés par le fait que le projet Shell ne fait pas directement référence aux projets du module. L'inconvénient principal est que l'assemblage de sortie des modules et ses dépendances ne sont pas copiés dans le dossier de sortie des projets shell après la compilation. J'ai réussi à utiliser xcopy comme un événement post-build pour copier l'assembly cible dans le dossier de sortie des projets (ce qui n'est pas particulièrement agréable, mais semble fonctionner), mais pas les dépendances.Quelle est la manière correcte de gérer les dépendances de module lors de l'utilisation de Prism?

Existe-t-il un moyen standard de résoudre ce problème, ou s'agit-il principalement de solutions ad-hoc? Devoir définir un événement post-build pour chaque configuration dans chaque module semble excessif, donc j'aimerais l'éviter si possible.

Répondre

1

Il existe une solution simple pour cela. Vous pouvez configurer des dépendances de projet dans Visual Studio sans créer de références croisées dans les assemblys.

Ouvrez les propriétés de la solution et accédez à la page Dépendances du projet. Ici, sélectionnez dans la zone de liste déroulante Projets votre EXE principal qui contient votre shell. Vous pouvez également cliquer à droite de votre projet principal dans l'Explorateur de solutions et sélectionnez dépendances du projet ... là:

enter image description here

Dans le Dépend listbox, Coche tous vos projets de modules qui doivent être compilés/copié dans le répertoire de sortie.

Vous pouvez configurer d'autres dépendances pour tous vos projets dans la solution (par exemple, si vous avez des dépendances indirectes entre les modules). Lors de la modification de tout projet ayant des dépendances, tous les projets dépendants seront reconstruits par Visual Studio et traités selon la configuration de construction (par exemple, copiés dans le répertoire de sortie).

+0

Merci. Je savais que cela ne pouvait pas être aussi compliqué que google l'a fait sortir. – Benjamin