Le trasformazioni di Web.config funzionano localmente

Voglio ottenere trasformazioni di web.config che funzionano localmente ma apparentemente le trasformazioni si verificano solo quando si eseguono le distribuzioni.

Qualcuno sa di un modo per eseguire la destinazione di msbuild “TransformWebConfig” senza passare attraverso il processo di “ricostruzione” e anche specificare ed esportare la directory dove sputare fuori il web.config trasformato?

EDIT : Usando la risposta di Sayed, ho creato un file .bat per eseguire l’attività per me:

 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Msbuild.exe "D:\Demo\Transformation.proj" /t:TransformWebConfig copy /Y "D:\Demo\Web.config" "D:\MyProject\Web.config" del ""D:\Demo\Web.config" 

il “Transformation.proj” è una copia dello snippet di codice di Sayed nella risposta seguente. Basta specificare l’origine, la destinazione e la destinazione per la trasformazione. Il nuovo file, in questo caso, il “web.config” trasformato sarà nella directory “D: \ Demo”. Sto semplicemente copiandolo per sovrascrivere il web.config del mio progetto e, infine, cancellando il file generato nella cartella “demo”.

Inoltre, ho creato una macro per eseguire questo file batch ed eseguire la trasformazione per me:

 Public Module DoTransform Sub RunTransformBatchFile() Try Process.Start("D:\Demo\RunTransform.bat") Catch ex As System.Exception MsgBox(ex.Message) End Try End Sub End Module 

È inoltre ansible aggiungere un pulsante sulla barra degli strumenti per eseguire questo batch e / o assegnare un tasto di scelta rapida per l’esecuzione.

se si desidera trasformare un file di configurazione senza utilizzare la pipeline di pubblicazione Web, è sufficiente utilizzare manualmente l’attività TransformXml. Ho scritto un dettagliato post sul blog su http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx , ma qui ci sono le luci alte:

       

Qui trasformo manualmente il file app.config utilizzando il file transform.xml e il file di destinazione è app.prod.config.

Una cosa che hai menzionato è stata la possibilità di eseguire la trasformazione localmente durante l’esecuzione dell’app. Il motivo per cui eseguiamo la trasformazione solo su pacchetto / pubblicazione è perché se abbiamo trasformato web.config stesso, la volta successiva che esegui il debug della tua app, web.config viene nuovamente trasformato. Ad esempio, se nel tuo web.debug.config hai la trasformazione per aggiungere un valore a config, tutto è OK la prima volta che lo aggiungi, ma la prossima volta che esegui / esegui il debug della tua applicazione verrà aggiunto di nuovo. Quindi è meglio evitarlo.

Se si utilizza Visual Studio 2015, è ansible fare clic con il tasto destro del mouse sulla trasformazione dell’ambiente desiderato e fare clic su “Visualizza anteprima” … Verrà quindi generata la trasformazione ed è ansible copiarla e incollarla nel normale Web.config file per scopi di debug. Basta non commetterlo!

Se si utilizza Visual Studio 2013, è ansible installare l’estensione SlowCheetah – XML ​​Transforms