vs2017 visual studio net mvc for deploy component asp asp.net deployment web-deployment-project

visual - Proyectos de implementación web de ASP.NET: deshacerse de los archivos de archivos compilados



publish web service iis (8)

Estoy usando un proyecto de implementación web en Visual Studio 2008 para preparar mi aplicación ASP.NET (aplicación web ASP.NET, no el sitio web ASP.NET) para copiarla en varios servidores. Tengo que copiar los archivos en servidores de etapas locales, en diferentes servidores a través de FTP y, a veces, tengo que buscarlos en los servidores de los clientes.

Por lo tanto, sería bueno tener todos los archivos para el despliegue en una forma compacta sin la necesidad de hacer una gran cantidad de comparación entre el origen y el destino. Los proyectos de implementación web tienen esta bonita función: compilar todos sus archivos aspx y ascx en un único conjunto (adicional).

De alguna manera descubrí cómo deshacerme de los archivos de marcador de posición aspx en el servidor, ahora quisiera saber si hay una forma (tal vez hecha a sí misma) de deshacerse de estos archivos .compiled .

Del blog de Rick Strahl :

El archivo .Compiled es un archivo de marcador para cada página y control en el sitio web e identifica la clase utilizada dentro del ensamblaje. Estos archivos no son opcionales ya que asignan las páginas ASPX a las clases precompiladas apropiadas en los ensamblados precompilados. Si elimina el archivo .Compiled, la página que mapea no se podrá ejecutar y obtendrá un desagradable error de ejecución.

¿Alguien por ahí con una idea creativa, tal vez usando un módulo / controlador que intercepta el cheque contra los archivos de la carpeta bin?


No sé acerca de los archivos .piled, pero podría configurar sus servidores para actualizar sus archivos con subversión en lugar de copiarlos manualmente cuando compila.

Así que compilaría los archivos utilizando el proyecto de implementación web (no en un solo ensamblaje), los colocaría en un repositorio que haya creado para este fin, y en cada servidor, simplemente haga una actualización svn para buscar y comparar los archivos automáticamente.

Sé que no es lo que pediste directamente, pero puede ser un camino para explorar.


El archivo .pile proviene de la compilación previa en la implementación. Entonces, básicamente tienes 3 opciones:

  1. Guarde el archivo .piled
  2. No precompile e implemente código fuente
  3. Convierta esto en una aplicación web en lugar de en un sitio web y compile como un ensamblado

Me he topado con el mismo problema yo mismo. En realidad, elijo # 1 en la mayoría de los casos cuando trato con la implementación de sitios web, pero en la rara ocasión en que sé que voy a tener que mantener el sitio por un período prolongado de tiempo, me tomo el tiempo para actualizarlo a una Web. Solicitud.


Agregue "Excluir filtro" a su proyecto de implementación:

  1. En el proyecto de implementación.
  2. Haga clic derecho en los archivos de contenido.
  3. Haga clic en "Excluir filtro".
  4. Agregar "* .Compiled"
  5. haga clic en Aceptar.

y eso es.


Recuerdo que en los días en que no puedo hacer la Aplicación Web con VWD Express, utilizo nant script para compilar el proyecto en un dll único y desplegarlo, eso funcionaría (así que no necesito el completo VS para hacer la implementación de dll), así que si realmente no desea desordenar su proyecto a la Aplicación Web, tal vez este es un camino para verificar también.


Tampoco me gustan los archivos compilados, pero nadie se lastima si están allí. ¿Entonces, para qué molestarse?


Puede deshacerse de los archivos de .compiled utilizando la herramienta aspnet_merge con la opción -r .

Elimina los archivos de la versión principal del código adjunto (código en la carpeta App_Code). No use esta opción si su aplicación contiene una referencia de tipo explícita al ensamblaje del código principal.


Si publica su código como actualizable (en la configuración de publicación), estos archivos se generan. Desmarca ese valor y vuelve a publicar. Esta es una vieja pregunta que sé, pero no hay respuestas claramente definidas aquí.