Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la diferencia entre la compilación de depuración de VS2005 y la compilación de msbuild?

¿Cuál es la diferencia entre la compilación de depuración de VS2005 y la compilación de msbuild?

Utilice aspnet_compiler para publicar sitios web. En el modelo asp.net 2.0, vs2005 se ha separado completamente de la compilación y se ha convertido en un ide.is completo. Este es un gran cambio. El concepto de aplicación web ha sido cancelado, lo que puede confundir un poco a las personas acostumbradas a vs2003 al principio. A continuación se muestra una breve introducción a mi propio resumen del proceso de uso, que puede considerarse como una pequeña experiencia.

Con respecto a la ubicación del proyecto web y el sistema de archivos recién creado, vs2005 solo le ayuda a crear el archivo sln. Esto solo le indica a msbuild cómo compilar. El proceso es: ide llama a msbuild, msbuild analiza el archivo. sln y msbuild llama a aspnet_compiler.exe para compilar el sitio web. Por lo tanto, aspnet_compiler.exe solo es responsable de compilar el sitio web.

.netframework 1.1 tiene el concepto de precompilación. La precompilación en vs2003 se refiere a compilar el archivo cs/vb correspondiente a la página junto con el archivo resx, integrarlos en un solo dll en el directorio bin y luego copiar el archivo aspx directamente en él. Hacerlo dejará peligros ocultos, porque el archivo aspx está expuesto directamente en el paquete de lanzamiento final. Si se adopta completamente el modo codeb-behind, está bien, pero la interfaz solo se puede cambiar si se usa la página para generar. página, el código fuente quedará expuesto. Para abordar estos problemas, vs2005 adopta un nuevo modelo.

Consulte el artículo Herramienta de compilación ASP.NET (Aspnet_compiler.exe) para aprender cómo procesar varios archivos.

Publicación IDE:

vs2005 Seleccione Generar -> Publicar sitio web, las operaciones en el cuadro de diálogo se asignarán a los parámetros de aspnet_compiler.exe, la publicación actualizable corresponde a -u, otros Las opciones son similares. Consulte el artículo anterior para averiguarlo.

Nota: Al publicar, se ignorará el parámetro de depuración en web.config y los archivos sin información de depuración se generarán de manera uniforme.

Compilación manual:

En pocas palabras, si compila sin actualizar el modo de lanzamiento, las clases bajo el código de aplicación se compilarán en dll y se colocarán en el directorio bin, el contenido de la página permanece sin cambios. como marcador de posición, la página se compilará en una dll con nombre aleatorio y se agregará un archivo compilado con el mismo nombre al directorio bin, aproximadamente de la siguiente manera

lt;?xml version="1.0 " encoding="utf-8"? gt;

lt; preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000 " asamblea="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx"gt;

lt;filedepsgt;

lt;filedep name="/Controls/footer.ascx" /gt;

p>

lt; filedep nombre="/Controls/header.ascx" /gt;

lt; filedep nombre="/Forum/AdminList.aspx" /gt; >

lt; nombre del archivo="/Forum/AdminList.ascx" /gt;

nombre del archivo="/Foro/menu.ascx" /gt; p> lt ;filedep name="/Forum/menu.ascx.cs" /gt;

lt;/filedepsgt

lt;/preservegt; > Interno, que simplemente enumera los controles personalizados en la página donde se completó la asignación al archivo principal. Esto maximizará la protección de la información confidencial en la página, y el sitio de publicación solo verá un montón de nombres de archivos. El modo de publicación actualizable es similar a vs2003, las páginas se copiarán directamente sin compilación.

Después de hablar de muchos principios, hablemos del método de llamada de aspnet_compiler.exe. Este es el método más simple que he usado. método de llamada exe, este es el ejemplo que uso

Mi directorio de desarrollo es así

Proyecto/

biblioteca/

devroot/

pubroot/

projekt/

proyecto/

biblioteca/

devroot/

pubroot/

El comando utilizado por proj es el siguiente:

aspnet_compiler -v / -p .\devroot -f .\pubroot

Análisis:

-v / especifica el directorio virtual iis

-p .\devroot indica la ubicación real del código

.\pubroot especifica la ubicación a publicar

-f significa forzar la reescritura de la ubicación de destino

También puede usar -u para precompilar en el sentido tradicional y -d para insertar símbolos de compilación.

En general, la combinación de aspnet_compile y msbuild proporciona un buen entorno de compilación automática, que vale la pena probar :)