Le VS des solutions je travaille souvent avec des consister en un seul exécutable du projet (application console, web app) et de nombreux projets de bibliothèque de classe qui sont toutes référencées par l'exécutable.
Lorsque vous travaillez avec NuGet et l'installation des packages, il y a souvent un app.config
le fichier créé pour chaque projet, contenant généralement rien d'autre qu'une liste de liaison des redirections de consolider les versions de assemblys référencés. Parfois, il y a une bibliothèque tierce contenu spécifique (comme Entity Framework section de configuration), mais laissons cela de côté pour l'instant.
Quand j'ai créer la solution et utiliser les binaires de l'exécutable principal de projet, je vois tous les le projet de bibliothèque de classes assemblées à la sortie de la construction avec les correspondants *.config
fichiers ( app.config
fichier est renommé AssemblyName.config
lors de la construction).
Lors du lancement de l'exécutable principal, faire les fichiers de configuration de la bibliothèque de classe assemblées ont aucun effet? Ou est-ce juste l' app.config
le fichier de l'exécutable qui a un effet dans ce cas? Que faire si il y a quelques contraignant redirige mis en place sur certains des projets de bibliothèque de classe, et certains de liaison différent redirige mis en place sur l'exécutable principal de projet — Comment sont-elles combinées, qui ont la priorité?
J'ai essayé à la recherche de cette ligne, et à partir de ce que j'ai lu, il me semble que l' app.config
fichiers pour les non-exécutable assemblées sont inutiles (en ce qui concerne la liaison des redirections). Quelqu'un peut-il confirmer ou d'élaborer un peu plus sur le sujet?
Si c'est de cette façon, est-il réellement souhaitable d'avoir ces app.config
fichiers créés par NuGet dans les bibliothèques de classe s'ils contiennent juste la liaison des redirections? Il me semble que NuGet ne devrait pas créer de celles liant les redirections pour les projets de bibliothèque de classe, car il ne fera qu'augmenter la confusion sur ce que les paramètres soient effectivement appliquées.
J'ai trouvé ces Débordement de Pile questions sur le sujet, mais leurs réponses acceptées sont en fait contradictoires, même quand ils sont marqués comme doublons les uns des autres.
La accepté de répondre à la première question mentionne que l'application.les fichiers de configuration sont effectivement utilisés lors de la compilation, ce qui signifie qu'ils pourraient avoir un effet. Des Sources comme le MSDN et MSBuild code source sont qui y est citée comme une preuve qu'il est utilisé lors de la compilation. Malheureusement, je ne suis pas suffisamment compétent dans MSBuild pour comprendre comment elle est utilisée, et si c'est vraiment un argument valable.