Disons que nous avons une solution avec la structure suivante:Comment Visual Studio détermine-t-il les éléments à copier dans le répertoire de sortie avec des solutions multi-projets?
- Project.DAL - couche d'accès aux données, dépend d'une bibliothèque de niveau inférieur, par exemple Oracle.DataAccess w/copie locale = true
- Project.BLL - couche logique métier, les références Project.DAL comme projet
- Project.UI - couche d'interface utilisateur, compile à l'exécutable, les références Project.BLL, par défaut projet
Lorsque Project.UI est compilé, VS est assez intelligent pour copier Project.DAL.dll dans le répertoire de sortie, mais il est pas assez intelligent pour comprendre que je voulais Oracle.DataAccess à copier à la sortie répertoire aussi bien pour la distribution aux clients.
Quelqu'un peut-il expliquer pourquoi c'est ainsi? Est-ce parce qu'il voit Oracle.DataAccess dans le GAC et suppose que les clients l'auront aussi dans le GAC? Ce n'est pas un gros problème, mais c'est un peu ennuyeux que chaque fois que j'ajoute une nouvelle référence d'assemblage, je dois me rappeler de la copier localement et ajouter un élément pour la copier dans mon script de construction.
+ 1 pour mettre en évidence "et n'est pas dans le GAC" ... cela m'a causé une journée de problèmes. –
Prenez garde que la valeur par défaut de CopyLocal (qui est utilisée si CopyLocal n'est pas explicitement spécifié dans le fichier de projet) a été récemment modifiée dans VS 2015 ([connect.microsoft.com] (https://connect.microsoft.com/VisualStudio/ feedback/details/1572417/the-default-setting-pour-la-copie-locale-de-references-is-now-true))! – Andreas
Comment puis-je obtenir un, par exemple. copie de fichier xsd dans le dossier de sortie? Je ne peux pas référencer un fichier xsd directement dans le code. – Johannes