2016-05-17 1 views
1

J'ai écrit un service web-api et utilisé le guépard lent pour faire les transformations. Tout est bon quand je compile et publie sur un serveur avec Visual Studio tout est transformé dans de nombreuses configurations différentes et dans de nombreux fichiers de configuration différents (connectionStrings.config etc ainsi que web.config).Web Config étant ignoré

Cependant, lorsque je compile avec msbuild, ce n'est pas le cas. Le web.config de vanilla est utilisé et rien n'est transformé.

Je me suis assuré que je suis en cours d'exécution avec le /p:Configuration correct et aussi essayé de courir TransformAllFiles cible spécifiquement mais encore une fois le fichier résultant ne prend pas en considération mon dossier de Web.UAT.config.

J'ai installé la version du paquet lent NuGet guépard 2.5.15 et le projet a été généré avec le studio visuel 2015.

La raison pour laquelle je veux faire la transformation est que je peux l'emballer avec le poulpe et le déploiement à plusieurs les serveurs. En ce moment je suis coincé. En aparté, si je lance la cible /t:TransformWebConfig cela transforme le fichier mais je crois que ce n'est pas la fonctionnalité slowcheetah et donc ce n'est pas vraiment ce qui est nécessaire.

Procédure pour reproduire ce problème

1) Créer un projet api 2 web os d'ours 2) Ajouter guépard lente 3) Installer guépard lent ajouter dans pour visual studio 2015 aperçu 4) ajouter une nouvelle configuration UAT basé sur la version. 5) quitter pour la ligne de commande.

exécutez la commande msbuild/t: TransformAllFiles/p: Configuration = UAT .csproj.

note dans la sortie, vous verrez quelque chose de similaire à:

> G:\dev\c#\TestCheetah\TestCheetah>msbuild /t:TransformAllFiles 
> /p:Configuration=UAT TestCheetah.csproj Microsoft (R) Build Engine 
> version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights 
> reserved. 
> 
> Build started 17/05/2016 19:32:44. The target "_ConvertPdbFiles" 
> listed in a BeforeTargets attribute at "C:\Program Files 
> (x86)\MSBuild\14.0\Microsoft.Com 
> mon.targets\ImportAfter\Xamarin.Common.targets (34,37)" does not exist 
> in the project, and will be ignored. The target "_CollectPdbFiles" 
> listed in an AfterTargets attribute at "C:\Program Files 
> (x86)\MSBuild\14.0\Microsoft.Com 
> mon.targets\ImportAfter\Xamarin.Common.targets (34,70)" does not exist 
> in the project, and will be ignored. The target "_CollectMdbFiles" 
> listed in a BeforeTargets attribute at "C:\Program Files 
> (x86)\MSBuild\14.0\Microsoft.Com 
> mon.targets\ImportAfter\Xamarin.Common.targets (40,38)" does not exist 
> in the project, and will be ignored. The target "_CopyMdbFiles" listed 
> in an AfterTargets attribute at "C:\Program Files 
> (x86)\MSBuild\14.0\Microsoft.Common 
> .targets\ImportAfter\Xamarin.Common.targets (40,71)" does not exist in 
> the project, and will be ignored. Project 
> "G:\dev\c#\TestCheetah\TestCheetah\TestCheetah.csproj" on node 1 
> (TransformAllFiles target(s)). TransformAllFiles: Copying file from 
> "Web.config" to "obj\UAT\TestCheetah.csproj-sc.App.config". Done 
> Building Project 
> "G:\dev\c#\TestCheetah\TestCheetah\TestCheetah.csproj" 
> (TransformAllFiles target(s)). 
> 
> 
> Build succeeded. 
>  0 Warning(s) 
>  0 Error(s) 

Notez qu'il dit son transformé le fichier web.config mais quand vous regardez, vous remarquerez la valeur de débogage (l'un et seulement transformer) n'a pas changé.

Répondre

0

J'ai travaillé sur comment faire cela à la fin. Je me suis rendu compte que je pouvais simplement renommer mes configs après les environnements en pieuvre et inclure les transformations personnalisées dans le formulaire d'utilisateur déployer l'Octopus. Par conséquent, mon approche initiale était erronée. J'utilise toujours le guépard lent pour les déploiements locaux qui fonctionne très bien mais je laisse le poulpe exécuter les transformations pour les instances déployées pour tester, UAT et la production.

Il semblerait que la tâche initiale que j'essayais de réaliser n'est pas possible avec le guépard lent à ce moment.