Dans Visual Studio 2010 et versions ultérieures, vous avez désormais la possibilité d'appliquer une transformation à votre web.config en fonction de la configuration de génération.
Lors de la création d'un web.config, vous pouvez développer le fichier dans l'explorateur de solutions et vous verrez deux fichiers:
- Web.Debug.Config
- Web.Release.Config
Ils contiennent un code de transformation qui peut être utilisé pour
- Changer la chaîne de connexion
- Supprimer la trace et les paramètres de débogage
- Enregistrer les pages d'erreur
Voir Syntaxe de transformation Web.config pour le déploiement de projet d'application Web sur MSDN pour plus d'informations.
Il est également possible, bien que officiellement non pris en charge, d'appliquer le même type de transformation à un app.config
fichier d' application non Web . Voir le blog de Phil Bolduc sur la façon de modifier votre fichier de projet pour ajouter une nouvelle tâche à msbuild.
Il s'agit d'une demande de longue durée sur Visual Studio Uservoice .
Une extension pour Visual Studio 2010 et supérieur, « SlowCheetah », est disponible pour prendre en charge la création de la transformation pour tout fichier de configuration. À partir de Visual Studio 2017.3, SlowCheetah a été intégré à l'EDI et la base de code est gérée par Microsoft. Cette nouvelle version prend également en charge la transformation JSON.
Pierre-Alain Vigeant
la source
Web.Debug.Config
etWeb.Release.Config
, vous devrez peut-être cliquerWeb.Config
avec le bouton droit et cliquerAdd Config Transforms
.La
<appSettings>
balise dans web.config prend en charge un attribut de fichier qui chargera une configuration externe avec son propre ensemble de clés / valeurs. Ceux-ci remplaceront tous les paramètres que vous avez dans votre web.config ou y ajouteront.Nous en profitons en modifiant notre web.config au moment de l'installation avec un attribut de fichier qui correspond à l'environnement sur lequel le site est installé. Nous le faisons avec un interrupteur sur notre installateur.
par exemple;
Remarque:
la source
restartOnExternalChanges
qui traitera ces fichiers comme s'ils étaient web.configs. Source: learnable.com/books/…Avez-vous regardé des projets de déploiement Web?
http://www.microsoft.com/downloads/details.aspx?FamilyId=0AA30AE8-C73B-4BDD-BB1B-FE697256C459&displaylang=en
Il existe également une version pour VS2005, si vous n'êtes pas en 2008.
la source
J'aimerais aussi savoir. Cela aide à isoler le problème pour moi
Je garde ensuite un connectionStrings.config ainsi qu'un "{host} connectionStrings.config". C'est toujours un problème, mais si vous le faites pour des sections qui diffèrent dans les deux environnements, vous pouvez déployer et versionner le même web.config.
(Et je n'utilise pas VS, btw.)
la source
J'utilise un script de construction NAnt pour déployer dans mes différents environnements. Je le fais modifier mes fichiers de configuration via XPath en fonction de l'endroit où ils sont déployés, puis il les place automatiquement dans cet environnement à l'aide de Beyond Compare .
La configuration prend une ou deux minutes, mais vous ne devez le faire qu'une seule fois. Ensuite, les fichiers batch prennent le relais pendant que je vais prendre une autre tasse de café. :)
Voici un article que j'ai trouvé dessus.
la source
Sur un projet où nous avions 4 environnements (développement, test, staging et production), nous avons développé un système où l'application a sélectionné la configuration appropriée en fonction du nom de la machine sur laquelle elle a été déployée.
Cela a fonctionné pour nous parce que:
Cela a bien fonctionné pour nous dans ce cas, mais ne fonctionnerait probablement pas partout.
la source
L'éditeur de configuration Enterprise Library peut vous y aider. Il vous permet de créer un fichier de configuration de base, puis des deltas pour chaque environnement. Vous pouvez ensuite fusionner la configuration de base et le delta pour créer un web.config spécifique à l'environnement. Jetez un œil aux informations ici qui vous permettront de les parcourir mieux que moi.
la source
Vous pouvez également en faire une étape post-génération. Installez une nouvelle configuration qui est "Déployer" en plus du débogage et de la version, puis copiez l'étape de post-génération sur le web.config correct.
Nous utilisons des builds automatisés pour tous nos projets, et avec ceux-ci, le script de build met à jour le fichier web.config pour pointer vers l'emplacement correct. Mais cela ne vous aidera pas si vous faites tout de VS.
la source
C'est l'un des énormes avantages de l'utilisation de machine.config. Lors de mon dernier emploi, nous avions des environnements de développement, de test et de production. Nous pourrions utiliser machine.config pour des choses comme les chaînes de connexion (vers la machine SQL appropriée, dev / test / prod).
Cela peut ne pas être une solution pour vous si vous n'avez pas accès à la machine de production réelle (comme si vous utilisiez une société d'hébergement sur un hôte partagé).
la source
Vous pouvez également utiliser l'extension "Configuration Transform" fonctionne de la même manière que "SlowCheetah",
la source