visual studio management for deploy configuring asp.net visual-studio-2010 web-config msdeploy web-deployment

asp.net - studio - web deployment agent service



Hacer que las transformaciones Web.config funcionen localmente (2)

Quiero que las transformaciones web.config funcionen localmente, pero aparentemente las transformaciones solo ocurren cuando se realizan implementaciones.

¿Alguien sabe de una forma de ejecutar el objetivo de msbuild "TransformWebConfig" sin pasar por el proceso de "reconstrucción" y también especificar y generar el directorio donde escupir el web.config transformado?

EDITAR : Utilizando la respuesta de Sayed, creé un archivo .bat para ejecutar la tarea por mí:

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"

el "Transformation.proj" es una copia del fragmento de código de Sayed en la respuesta a continuación. Solo especifique la fuente, el destino y el destino de la transformación. El nuevo archivo, en este caso, el "web.config" transformado estará en el directorio "D: / Demo". Simplemente estoy copiando para sobrescribir el web.config de mi proyecto y, finalmente, eliminar el archivo generado en la carpeta "demo".

Además, creé una macro para ejecutar este archivo por lotes y realizar la transformación para mí:

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

También puede agregar un botón en su barra de herramientas para ejecutar este lote y / o asignar una tecla de método abreviado para ejecutar.


Si usa Visual Studio 2015, puede hacer clic con el botón derecho en la transformación del entorno deseado y hacer clic en "Ver vista previa" ... Generará la transformación y podrá copiarla y pegarla en la Web.config normal. archivo para fines de depuración. ¡Simplemente no lo cometas!

Si está utilizando Visual Studio 2013, puede instalar la extensión SlowCheetah - XML ​​Transforms


si desea transformar un archivo de configuración sin utilizar el Pipeline de Publicación Web, simplemente use la tarea TransformXml manualmente. He escrito una publicación de blog detallada sobre esto en http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx , pero aquí están las luces altas:

<Project ToolsVersion="4.0" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)/Microsoft/VisualStudio/v10.0/Web/Microsoft.Web.Publishing.Tasks.dll"/> <Target Name="Demo"> <TransformXml Source="app.config" Transform="Transform.xml" Destination="app.prod.config"/> </Target> </Project>

Aquí manualmente transformo el archivo app.config usando el archivo transform.xml y el archivo de destino es app.prod.config.

Una cosa que mencionaste fue poder hacer transformaciones localmente al ejecutar la aplicación. La razón por la que solo realizamos la transformación en el paquete / publicación es porque si transformamos web.config por sí mismo, la próxima vez que depure su aplicación, el web.config se transformará de nuevo. Entonces, por ejemplo, si en su web.debug.config tiene la transformación para agregar un valor a config, todo estará bien la primera vez que lo agregue, pero luego la próxima vez que ejecute / depure su aplicación, se volverá a agregar. Entonces es mejor evitar eso.