2010-09-30 12 views
21

¿Se puede configurar ClickOnce para eliminar los directorios publicados anteriormente?¿Se puede configurar ClickOnce para eliminar directorios antiguos publicados?

O

nadie ha escrito un código que va a eliminar de estos directorios publicar (tal vez mantener el último 10)?

Actualmente, cada vez que se realiza una publicación ClickOnce se está creando un nuevo directorio en el servidor IIS. Este NUEVO directorio contiene una copia de la aplicación completa, que se descarga. Los viejos directorios ya no parecen ser utilizados y ocupan mucho espacio.

Aquí hay una muestra de los nombres de directorio que se están creando. Como puede ver, el número de versión de la aplicación se está utilizando en el nombre.
EduBenesysNET_1_0_1_0
EduBenesysNET_1_0_1_1
....
EduBenesysNET_1_0_1_192
EduBenesysNET_1_0_1_193

Hemos tenido 194 (basado en cero) se construye con cada directorio permanecer fuera allí. Con el tamaño de una compilación de aproximadamente 50mb, puede ver cómo mantener los directorios antiguos por ahí comenzará a consumir en el espacio del disco.

La forma en que funciona nuestra aplicación es que siempre debe descargar la última versión. No tiene la opción de omitir la descarga, así que espero que eliminar los directorios antiguos no sea un problema.

Respuesta

13

Buena pregunta (1) - se podría pensar que esto debería ser posible de alguna manera ...

Mirando un poco más cerca, aunque revela que el comportamiento observado de publicación en realidad no es una característica de la tecnología ClickOnce, más bien uno del Visual Studio Publish Wizard - véase por ejemplo la sección ClickOnce publicar estructura de carpetas en ClickOnce Publishing Process:

Si genera o actualiza una publicación aplicación ClickOnce utilizando Mago o una herramienta personalizada de forma manual, no se ven limitados a esta estructura de carpetas y archivos. Para cualquier publicación ClickOnce particular, la cadena de dependencias incluye lo siguiente: [...] [énfasis mío]

El Walkthrough: Manually Deploying a ClickOnce Application produce la misma conclusión, es decir, la estructura de carpetas en uso por VS es simplemente un (razonable) convención/enfoque.

Lamentablemente, el Asistente de publicación VS no parece ofrecer la eliminación de versiones anteriores, al menos no está ni visible ni documentado en alguna parte. Sin embargo, dado que la estructura de carpetas resultante es solo un artefacto del proceso de compilación, también podría agregar un paso de compilación personalizado haciendo precisamente eso: descifrar los detalles (es decir, acceder a las propiedades de automatización VS para derivar la última versión publicada, etc.) es fuera del alcance de su pregunta, sin embargo;)

cuanto a su pregunta substitución:

estoy esperando que la eliminación de los viejos directorios no debería ser un problema.

Definitivamente no es un problema, solo depende de la cantidad de estos que desee conservar para las operaciones de reversión con el tiempo, consulte p. Ej. Can I delete previous old versions from Publishing Location created by ClickOnce?

+0

Agregué una segunda pregunta preguntando si alguien escribió código para eliminar de los directorios publicados. Buena idea Opel, al pasar eso a una pregunta separada. Luego volveré a vincular a esta pregunta. –

2

La respuesta corta es que esto no está incorporado en Visual Studio o en la implementación de ClickOnce, y tendrá que encontrar otra forma de hacerlo, tal vez a través de un script que ejecute en su servidor.

Puede eliminar todas las versiones excepto la actual si inserta actualizaciones como actualizaciones requeridas. Si no lo hace, querrá conservar dos versiones en caso de que el usuario revierte una versión.

Cuestiones relacionadas