Pour répondre à la première question, vous techniquement pouvez mettre le fichier où vous le souhaitez, cependant, vous aurez à coder vous-même, comme l'endroit par défaut le fichier va est le premier de vos deux exemples. (lien pour comment faire vous-même)
Quant à la deuxième question, cela dépend de comment vous déployez l'application. Si vous déployez via un .msi, puis il y a deux hachages dans les propriétés du projet d'installation (que la msi est construit à partir), le "code de mise à niveau" et le "code du produit'. Celles-ci déterminent la façon dont le msi peuvent être installés, et si il se met à jour, écrase, ou installe à côté de toutes les autres versions de la même application.
Par exemple, si vous avez deux versions de votre logiciel, et ils ont différents "mise à niveau" les codes, puis à windows, ils sont complètement différents morceaux de logiciel, indépendamment de ce que le nom est. Toutefois, si la "mise à niveau" du code est le même, mais le "produit", le code est différent alors lorsque vous essayez d'installer la 2ème msi, il vous demandera si vous souhaitez mettre à niveau, à laquelle il est censé copier les valeurs de l'ancienne config pour une nouvelle config. Si les deux valeurs sont les mêmes, et le numéro de version n'a pas changé alors la nouvelle configuration sera dans le même emplacement que l'ancienne config, et ne pas avoir à faire quoi que ce soit. La Documentation MSDN
ClickOnce est un peu différent, parce que sa base plus large de la version ClickOnce # et le chemin d'URL, cependant j'ai trouvé que tant que vous continuez à "Publier" à l'emplacement même de la nouvelle version de l'application va continuer à utiliser la configuration existant. (lien pour comment ClickOnce gère les mises à jour)
Je sais aussi qu'il y un moyen de fusionner manuellement les configs lors de l'installation du msi en utilisant des scripts d'installation, mais je ne me souviens pas les étapes exactes pour le faire... (voir ce lien pour savoir comment faire avec un site web.config)