Définir automatiquement appsettings.json pour le dev et la libération des environnements asp.net core?
J'ai défini quelques valeurs dans mon appsettings.json
pour des choses comme la base de données de chaînes de connexion, webapi les emplacements et les autres qui sont différents pour le développement, la mise en scène et les milieux de vie.
Est-il un moyen d'avoir plusieurs appsettings.json
fichiers (comme appsettings.live.json
, etc, etc) et qui ont la asp.net application juste 'savent' lequel utiliser en fonction de la configuration de build c'est de la course?
OriginalL'auteur tweetypi | 2017-09-22
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser la compilation conditionnelle:
Voir ma réponse (stackoverflow.com/a/50331886/1319086) pour la variable d'Environnement
Ce type d'approche, les forces du code pour être recompilé spécifiquement pour chaque environnement, le rendant impossible à être redistribuées/installés ailleurs.
La Question était à propos de “connaître la configuration de build”
OriginalL'auteur Dmitry
J'ai Ajouté un aperçu de l'environnement de Travail, parce que cela coûte de plusieurs heures pour R&D.
D'abord Ajouter la Clé de votre
Launch.Json
fichier.Voir ci-dessous snap, j'ai ajouté
"Development"
que mon Environnement.Puis Ajouter appSetting fichier avec le Même nom dans votre projet.
Ajouté composant logiciel enfichable, regardez pour les 2 fichiers Différents nommé avec.
appSettings.Development.Json
appSetting.json
Et enfin de les Configurer à Votre Démarrage d'une classe, Comme ci-Dessous.
Et enfin, je suis en cours d'Exécution à partir du terminal de ce genre.
où le Développement est mon Environnement.
OriginalL'auteur Bharat
Juste une mise à jour .NET core 2.0 utilisateurs, vous pouvez spécifier la configuration de l'application après l'appel à
CreateDefaultBuilder
:L'environnement n'est rien de plus qu'un paramètre spécifié dans les propriétés du projet. Dans VS 2017, clic droit sur le projet > propriétés. En vertu de débogage, vous verrez l'environnement actuel pour les principaux
ASPNETCORE_ENVIRONMENT
. La valeur est ce qui va être remplacé pourctx.HostingEnvironment.EnvironmentName}
. Donc, si vous définissez cette valeur dans les propriétés de la "Production", le projet va chercherconfig.Production.json
fichier dans le dossier racine. Pour plus d'informations, veuillez consulter la lienCrée un
Error CS0266 Cannot implicitly convert type 'Microsoft.AspNetCore.Hosting.IWebHost' to 'Microsoft.AspNetCore.Hosting.IWebHostBuilder'. An explicit conversion exists (are you missing a cast?)
dans Hébergeur.CreateDefaultBuiler(...OriginalL'auteur Umut Esen
Vous pouvez utiliser des variables d'environnement et les
ConfigurationBuilder
classe dans votreStartup
constructeur comme suit:Ensuite, vous créez une
appsettings.xxx.json
fichier pour chaque environnement dont vous avez besoin, avec "xxx" étant le nom de l'environnement. Notez que vous pouvez mettre toutes les valeurs de configuration dans votre "normal"appsettings.json
fichier et ne mettre l'environnement spécifique des trucs dans ces nouveaux fichiers.Maintenant vous avez seulement besoin d'une variable d'environnement appelée
ASPNETCORE_ENVIRONMENT
avec certains de la valeur d'environnement ("live", "test", "production", peu importe). Vous pouvez spécifier cette variable dans les paramètres de votre projet pour votre environnement de développement, et bien sûr, vous devez mettre dans votre mise en scène et les environnements de production également. La façon dont vous le faites, il dépend de quel type d'environnement c'est.Mise à JOUR: je viens de réaliser que vous voulez choisir l'
appsettings.xxx.json
en fonction de votre de configuration de la compilation. Cela ne peut être réalisé avec ma proposition de solution et je ne sais pas si il y a une façon de le faire. La "variable d'environnement", cependant, fonctionne et pourrait aussi bien être une bonne alternative à votre approche.Définition de la variable dans les propriétés du projet ne fonctionne que pour l'utiliser dans votre environnement de développement (probablement Visual Studio). Vous aurez besoin de le mettre ailleurs pour votre déployé des applications en fonction de l'environnement spécifique (IIS, Azure). Je recommande de ne pas définir la variable dans un fichier de configuration parce que ce fichier peut être déployé, puis remplacer le serveur de valeurs.
Vous le mettre en place dans des configurations de build. Si il n'y a pas un build fichier de configuration alors qu'ils font manuellement, de sorte qu'ils ont besoin de l'établir dans l' (archaïque) profil de déploiement
OriginalL'auteur Onkel Toob
Dans ASP.NET de Base, vous devriez plutôt utiliser EnvironmentVariables au lieu de construire de configuration pour une bonne appsettings.json
Clic droit sur votre projet > Propriétés > Debug > Variables d'Environnement
ASP.NET Core prendre appsettings.fichier json.
Maintenant, vous pouvez utiliser la Variable d'Environnement comme ceci:
Si vous le faites @Dimitri 'façon, vous aurez des problèmes par exemple. lors de la substitution appsettings.json valeurs sur Azure.
OriginalL'auteur walkerbox
Vous pouvez ajouter le nom de la configuration que l'
ASPNETCORE_ENVIRONMENT
dans lelaunchSettings.json
comme ci-dessousOriginalL'auteur Fleaca Dan
1.Créer plusieurs appSettings.$(Configuration).jsons comme
appSettings.la mise en scène.json
appSettings.de production.json
2.Créer un pré-créer un événement sur le projet qui copie le fichier correspondant à appSettings.json comme ce
copie appSettings.$(Configuration).json appSettings.json
3.Utilisez Uniquement des appSettings.json dans votre Config Constructeur
OriginalL'auteur user3924036