Pour répondre à la première question, vous pouvez techniquement placer le fichier où vous le souhaitez, mais vous devrez le coder vous-même, car l'emplacement par défaut du fichier est le premier de vos deux exemples. ( lien vers comment le faire vous-même )
Quant à la deuxième question, elle dépend de la façon dont vous déployez l'application. Si vous déployez via un .msi, il y a deux hachages dans les propriétés du projet d'installation (à partir duquel le msi est construit), le «code de mise à niveau» et le «code produit». Celles-ci déterminent comment le msi peut être installé et s'il est mis à niveau, écrasé ou installé à côté de toute autre version de la même application.
Par exemple, si vous avez deux versions de votre logiciel et qu'elles ont des codes de «mise à niveau» différents, alors pour Windows, ce sont des logiciels complètement différents, quel que soit le nom. Cependant, si le code de `` mise à niveau '' est le même, mais que le code `` produit '' est différent, lorsque vous essayez d'installer le 2ème msi, il vous demandera si vous souhaitez mettre à niveau, moment auquel il est censé copier les valeurs du ancienne config vers une nouvelle config. Si les deux valeurs sont identiques et que le numéro de version n'a pas changé, la nouvelle configuration sera au même emplacement que l'ancienne configuration, et elle n'aura rien à faire. Documentation MSDN
ClickOnce est un peu différent, car il est basé davantage sur la version ClickOnce # et le chemin de l'URL, mais j'ai constaté que tant que vous continuez à `` publier '' au même emplacement, la nouvelle version de l'application continuera à utiliser le config existante. ( lien vers la façon dont ClickOnce gère les mises à jour )
Je sais aussi qu'il existe un moyen de fusionner manuellement les configurations lors de l'installation du msi à l'aide de scripts d'installation personnalisés, mais je ne me souviens pas des étapes exactes pour le faire ... (voir ce lien pour savoir comment le faire avec un site Web. config)