5

Tengo una solución con unos pocos proyectos, 3 de ellos basados ​​en la web (WCF en el sitio IIS/MVC). Cuando la solución se genera, vacía cada uno de los componentes de este sistema distribuido en una carpeta 'Build'. Al ejecutar la parte del 'configurador' de toda la salida se configurará el sistema en la nube automáticamente. Es muy claro :) Sin embargo, los proyectos de implementación web son un gran dolor. "Construyen" (es decir, implementan) cada, solo, tiempo que construyo, incluso cuando no se han realizado cambios en sus respectivos proyectos.Mejor alternativa para Web Deploy Projects

¿Cambió una sola línea de código? Esperamos esperar alrededor de un minuto para que los 3 proyectos web se vuelvan a desplegar.

[Estos proyectos son muy sencillas en el momento - dos tienen un solo .svc y un archivo .ashx - el otro es una aplicación MVC con vistas ~ 5]

Soy consciente de que puedo cambiar las configuraciones de solución a no 'compilarlos', pero he estado haciendo eso y es muy fácil iniciar sesión al día siguiente y olvidarme de ello, y pasar un par de horas rastreando errores en sistemas distribuidos debido a algo que simplemente no se ha construido.

¿Por qué uso Web Deploy Projects? Bueno, porque necesito todas las páginas + binarios del proyecto web. El resultado de compilación para el proyecto en sí es la carpeta 'bin', por lo que no hay páginas. ¿Toda la carpeta del proyecto? Tiene .cs, .csproj y otros archivos que no quiero incluir.

Esto se irá construyendo en los servidores de compilación eventualmente, pero es local en este momento. Pero quiero una manera rápida de obtener los archivos de salida reales del proyecto web a mi carpeta de destino. ¿Algunas ideas?

Respuesta

2

Al final creé una utilidad/herramienta que, dado un archivo de proyecto, XCOPYies la carpeta del proyecto para el proyecto web a una ubicación de destino, luego mira en dicho archivo de proyecto y elimina todo lo que no tiene Build Action set satisfacer. Muy rápido y efectivo.

+1

+1, porque eso es lo que terminé haciendo recientemente. Elimina mucha magia y es sencillo y fácil de automatizar. – Kugel

1

Sé que todavía está en RC pero VS2012 tiene una característica clara al publicar que detecta los cambios y los publica solo. Podría ser algo un poco más profundo en la construcción donde también se publica automáticamente.

2

No estoy seguro si esto le ayudará en su situación, (enchufe para un proyecto propio que viene), pero estoy trabajando en un proyecto para ayudar a la facilidad IIS despliegues:

https://github.com/twistedtwig/AutomatedDeployments

La idea es que pueda utilice archivos de configuración para IIS (conjunto de aplicaciones, aplicaciones y sitios web) para automatizar la creación y actualización de sitios localmente (máquinas de desarrollo) o de forma remota (máquinas de prueba y producción).

Todavía es un trabajo en progreso, pero está listo para ser utilizado en sistemas de producción.

usando la creación del paquete como un paso de compilación posterior podría acercarlo más a lo que desea, (no crea que incluya todos los archivos extra), pero eso aún lo construiría cada vez, (aunque si el código no t cambiado no debería reconstruirse a menos que elija reconstruir todos los proyectos).

Cuestiones relacionadas