2016-01-12 27 views
12

Il progetto su cui sto lavorando implica la lettura di molti endpoint di servizio (url) da un file di configurazione. Dato che la lista sarebbe abbastanza grande ho deciso di tenerli in un file di configurazione personalizzato per mantenere il mio web.config pulito e piccolo. Ho incluso la sezione personalizzata nel mio spazio web come di seguito:Come aggiungere trasformazioni di configurazione per un file di configurazione personalizzato in Visual Studio?

<mySection configSource="myConfig.config" /> 

mi funziona perfettamente bene.

Ma il problema della trasformazione appare durante l'implementazione del progetto in diversi ambienti. Ho tre file web.config:

Web.config

Web.Uat.config

Web.Release.config

Mentre il web.config trasformazione funziona, le trasformazioni per config personalizzato i file non riescono alla distribuzione.

C'è un modo per trasformare il file di configurazione personalizzato durante l'implementazione?

+1

Fatto qualche ricerca su questo. Prendi questo; Fuori sede sì. È qualcosa che stai cercando; http://www.diaryofaninja.com/blog/2011/09/14/using-custom-webconfig-transformations-in-msbuild – Irshad

risposta

11

Visual Studio trasforma solo i file web.config per impostazione predefinita.

Se avete bisogno di file di configurazione personalizzato con la trasformazione per il DEV, SVS, PROD, ecc ambienti, quindi provare a

  1. Usa estensioni personalizzate per Visual Studio come SlowCheetah - XML Transforms per Config funzionalità transormation anteprima.
  2. Aggiungi per il progetto da Nuget SlowCheetah per fornire la trasformazione di build.

A piccoli dettagli bit:

Aggiungere VS Extension SlowCheetah da estensioni e aggiornamenti Screen of Extensions and Updates

Fare clic destro sul vostro myconfig.config e scegliere Aggiungi transorm: Screen of Extensions and Updates

Dentro ogni configurazione definita inserisce le proprie regole di transormazione in questo modo:

<services xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <service name="WebApplication1.Services.Service2" xdt:Transform="Replace" xdt:Locator="Match(name)" > 
    <endpoint address="http://localhost:57939/Services/DebugService" behaviorConfiguration="WebApplication1.Services.Service2AspNetAjaxBehavior" 
     binding="webHttpBinding" contract="WebApplication1.Services.Service2" /> 
    </service> 
</services> 

Spero sia stato utile

+0

Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti da un autore, lascia un commento sotto il loro post. - [Dalla recensione] (/ recensione/post di bassa qualità/10858849) –

+1

Ho pensato che fosse una risposta alla domanda "... trasformare il file di configurazione personalizzato ...?" Ok, fornirà dettagli su come funziona. – Michael

+0

Durante la reinstallazione di Visual Studio, la risposta è stata downvoted. Spero che adesso sia ok – Michael