2011-05-06 9 views
6

Estoy intentando implementar una aplicación utilizando un proyecto de configuración web. El problema al que me estoy enfrentando es que el archivo web.config nunca se transforma. De acuerdo con este post es por diseño que la transformación solo tiene lugar durante una publicación. ¿Cómo hago para que las propiedades de web.config se actualicen correctamente si la construcción del Proyecto de Configuración a su vez llama al otro comando de compilación de ensamblajes?Configuración de las propiedades de web.config durante la compilación (no a través de la publicación)

Respuesta

5

me fijo mediante la adición de un archivo ficticio web.Template.config como Andriy K sugiere en este post, y luego llamar TransformXml durante mi evento BeforeBuild como ese:

<Target Name="BeforeBuild"> 
<TransformXml Source="$(WebFolderName)Web.Template.config" 
       Transform="$(WebFolderName)Web.$(Configuration).config" 
       Destination="$(WebFolderName)Web.config" /> 
</Target> 
2

La opción más simple es instalar una utilidad xslt de línea de comandos y ejecutarla en la acción posterior a la construcción de su proyecto. También podría usar una de las muchas tareas de MSBuild XSLT y agregarla al archivo .csproj. (Es solo un archivo de script de MSBuild; ya hay comentarios cerca de la parte inferior que explica cómo personalizar la compilación).

También podría realizar cualquiera de estos pasos en la acción de preconstrucción de su proyecto de instalación, en lugar de la acción posterior a la construcción de su aplicación web. Si también usa el asistente de publicación, esta segunda opción puede funcionar mejor, ya que no interferirá con la transformación XSLT normal en el editor.

Microsoft XSLT utilidad de línea de comandos: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2fb55371-c94e-4373-b0e9-db4816552e41&displaylang=en

Ejemplo MSBuild XSLT Tarea: http://www.arlt.eu/blog/2007/10/01/msbuild-xslt-task/

Cuestiones relacionadas