visual tag studio sitio route publicar proyecto net for asp aplicacion asp.net deployment build-process build-automation

tag - Salida de compilación de la aplicación web ASP.NET: ¿cómo incluyo todos los archivos de implementación?



publicar sitio web visual studio 2017 (9)

¿Has intentado hacer clic derecho en el sitio web en el Explorador de soluciones y hacer clic en "Publicar sitio web"?

Cuando construyo mi aplicación web ASP.NET , obtengo un archivo .dll con el código del sitio web (lo cual es genial) pero el sitio web también necesita todos los archivos .aspx y amigos, y estos deben ubicarse en el sitio correcto. estructura de directorios. ¿Cómo puedo obtener este todo en un directorio como resultado de cada compilación? Tratar de elegir los archivos correctos del directorio de origen es un problema.

El resultado final debe ser xcopy desplegable.

Actualización: no quiero tener que usar manualmente el comando Publicar que conozco. Quiero que el conjunto completo de archivos requerido por la aplicación sea el resultado de compilación, esto significa que también obtengo el conjunto completo de archivos en un solo lugar desde la ejecución de MSBuild .


Build -> Publish

Aparecerá un cuadro de diálogo que lo guiará a través del proceso.


Para la construcción automatizada que describes en la actualización, te recomendaría que busques en MSBuild y CruiseControl.NET



Una solución parece ser Proyectos de implementación web (WDP), un complemento disponible para Visual Studio (y msbuild) que crea un proyecto web en un directorio y opcionalmente puede fusionar ensamblajes y alterar el archivo web.config. El resultado de crear un WDP es todos los archivos necesarios para implementar el sitio en un directorio.

Más información sobre proyectos de implementación web:

  1. Anuncio en webdevtools MSDN blog para WDP 2008
  2. Introducción de ScottGu a WDP 2005

La única desventaja de esta solución es el requisito de un complemento que debe estar disponible en la máquina de compilación. Aún así, es lo suficientemente bueno por ahora!


¿Has probado usar aspnet_compiler.exe en tu directorio .net framework? Estoy bastante seguro de que puede crear una versión de "implementación lista" de una aplicación web o sitio web.


El objetivo _CopyWebApplication en MSBuild hará exactamente lo que necesita. El problema es que solo el ensamblaje principal se copiará en la carpeta bin y es por eso que se necesita una copia para copiar también cualquier otro archivo en la carpeta bin.

Estaba intentando publicar el script de muestra como parte de esta publicación, pero no pude.

Por favor, eche un vistazo a este artículo en mi blog que describe cómo crear un script de MSBuild similar al que necesita.


ASP.NET no tiene implementación real de xcopy para sitios nuevos . Depende de tener un directorio / aplicación virtual en IIS. Sin embargo, una vez que se crea ese directorio virtual, puede usar xcopy para las actualizaciones.


Depende de qué tan complicada sea la solución que necesite, simplemente podría usar un script y jenkins por ejemplo. Puede usar MSBUild con Jenkins para simplemente implementarlo en un IIS. Y si tiene otras herramientas de Jenkins, es bastante fácil conectarse con ellas más adelante. Pero si solo quieres construir, usa un script que jenins ejecute cada compilación que use MSDeploy y funcionará muy bien.

Así es como lo hago, solo para darte una sensación:

Sonarqube usa Gallio, Gendarme, FXcop, Stylecop, NDepths y PartCover para obtener sus métricas, y todo esto es bastante directo ya que SonarQube lo hace automáticamente sin mucha configuración.

Aquí está la construcción de brujas de Jenkins y obtener las métricas de Sonar y otro trabajo para implementar automáticamente en IIS. Utilizo una secuencia de comandos simple una línea que llama a mi MSBuild y qué URL, pase y usuario.

Y Sonarqube, todas las métricas para mi proyecto. Esta es una aplicación MVC4 simple, ¡pero funciona genial !:

Si desea más información, puedo proporcionarle una buena guía.

Esta configuración completa usa MSBuild, también crea e implementa las aplicaciones.