Nous utilisons un système qui combine plusieurs des réponses existantes sur cette page, et qui s'appuie sur les éléments suivants cette suggestion de Scott Hanselman .
En bref, ce que nous avons fait est d'avoir un app.config / web.config commun, et d'avoir la plupart des paramètres spécifiques dans des fichiers individuels, comme suggéré par d'autres réponses ici. par exemple, pour nos paramètres SMTP, l'app.config contient
<system.net>
<mailSettings>
<smtp configSource="config\smtp.config" />
</mailSettings>
</system.net>
Ce dossier est dans le contrôle de source. Cependant, les fichiers individuels, comme celui-ci, ne le sont pas :
<?xml version="1.0" encoding="utf-8" ?>
<smtp deliveryMethod="Network">
<network host="127.0.0.1" port="25" defaultCredentials="false" password="" userName ="" />
</smtp>
Mais l'histoire ne s'arrête pas là. Qu'en est-il des nouveaux développeurs, ou d'une nouvelle installation des sources ? La majeure partie de la configuration n'est plus dans le contrôle de source, et c'est une douleur de construire manuellement tous les fichiers .config dont ils ont besoin. Je préfère avoir des sources qui compilent au moins dès la sortie de la boîte.
Par conséquent, nous conservons une version des fichiers .config dans le contrôle de source, nommée .config.default des dossiers. Un arbre source frais ressemble donc à ceci :
Pourtant, ils ne sont pas vraiment utiles au développeur, car pour Visual Studio, ce ne sont que des fichiers texte sans intérêt. D'où le fichier batch, copy_default_config.bat
se charge de créer un ensemble initial de fichiers .config à partir des fichiers .config.default :
@echo off
@REM Makes copies of all .default files without the .default extension, only if it doesn't already exist. Does the same recursively through all child folders.
for /r %%f in (*.default) do (
if not exist "%%~pnf" (echo Copying %%~pnf.default to %%~pnf & copy "%%f" "%%~pnf" /y)
)
echo Done.
Le script peut être ré-exécuté en toute sécurité, en ce sens que les développeurs qui ont déjà leurs fichiers .config ne les verront pas écrasés. Par conséquent, on pourrait concevoir d'exécuter ce fichier batch comme un événement de pré-construction. Les valeurs dans les fichiers .default peuvent ne pas être exactement correctes pour une nouvelle installation, mais elles constituent un point de départ raisonnable.
Au final, chaque développeur se retrouve avec un dossier de fichiers de configuration qui ressemble à quelque chose comme ceci :
Cela peut sembler un peu alambiqué, mais c'est certainement préférable à l'ennui des développeurs qui se marchent sur les pieds.
10 votes
Je vote pour la réouverture, car il s'agit d'un problème commun aux développeurs de Visual Studio et qui implique directement les outils que les développeurs utilisent. (d'où les votes)
0 votes
Je suis d'accord, c'est un problème persistant car la taille de notre équipe a augmenté et les diverses tentatives de résolution ont été insatisfaisantes.