2012-06-08 32 views
5

Estoy usando MSBuild para empacar y publicar una aplicación Asp.Net MVC 3, .Net 4. Ya he hecho esto con éxito para una aplicación MVC 1.0, .Net 3.5.MSBuild Problema IIS

Siempre que se incluye la función de IIS (IncludeIisSettings=true) en mi archivo .proj me sale el siguiente error de compilación:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(2046, 5): error MSB4044: The "EscapeTextForRegularExpressions" task was not given a value for the required parameter "Text".

+0

Esto parece ocurrir cuando 'BaseIntermediateOutputPath' está vacío, que a su vez pasa un valor vacío al parámetro" Texto "como se hace referencia en el error. Una reconstrucción puede ayudar. – KMoraz

+0

A tuvo el mismo error, después de migrar un webrole de servicio en la nube azul a una aplicación web. Establecer IncludeIisSettings en False en .csproj lo resuelve. – Magu

Respuesta

8

que he tenido el mismo problema en mi servidor de compilación.

El paquete se compilaría perfectamente en mi máquina de desarrollo pero fallaría con exactamente el mismo error que tiene en mi servidor de compilación. Para mí, el problema fue causado por el hecho de que en mi máquina de compilación, la aplicación no está registrada con IIS.

El problema comenzó cuando habilité las pruebas locales en IIS Express en el proyecto y de alguna manera indirecta que habilita la configuración IncludeIisSettings=true que mencionó. Esto hace que la canalización de implementación web consulte IIS para conocer los detalles del sitio. Como el servidor de compilación no tenía instalados IIS 7 o IIS Express, no pudo obtener esa configuración. Esto finalmente lleva al error anterior porque el parámetro pasado a la tarea EscapeTextForRegularExpressions está vacío.

Mi solución fue establecer IncludeIisSettings a False en las aplicaciones .wpp.targets archivo (ver here para un ejemplo .wpp.targets archivo). Si especifica la configuración de IIS explícitamente, eso no debería ser un problema.

También pude arreglar la compilación registrando el sitio con IIS Express usando WebMatrix. Ejecutar el sitio en Visual Studio debería tener el mismo efecto.

1

El problema que tuve fue con los permisos, específicamente la configuración de UAC en Windows 7 después de cambiar de computadora portátil.

Después de una inspección minuciosa de mi configuración anterior, me di cuenta de que todavía tenía la configuración de UAC predeterminada. Para cambiar, vaya a Start > Control Panel > User Accounts > User Accounts > Change User Account Control Settings. A continuación, arrastre la barra hasta el final hasta Never notify.

Éstos son algunos de los síntomas adicionales que he observado que podrían ser útiles:

Cuando me encontré con msbuild localmente con IncludeIisSettings=true he recibido el mismo error que en la pregunta.

Después de algunas frustraciones y giros equivocados, no pude entender por qué, aunque soy administrador, recibía errores de permiso en áreas relevantes, p. cuando establezco IncludeIisSettings=false y luego intento ejecutar el archivo de implementación recibí un error de permiso.

Por lo tanto, decidí explorar la configuración de UAC y encontrar la solución.

+0

Desafortunadamente no me ha ayudado. Ejecuto VS como administrador, cambio el UAC al mínimo y aún tengo el mismo error. ¡Pero bien por ti! (Windows 10, intenté con incluir y desconectar) – ignacy130

0

La solución que encontramos para tener IncludeIisSettings = true y tener una build exitosa sin la tarea "The" EscapeTextForRegularExpressions "no recibió un valor para el parámetro requerido" Text "." error fue:

  • Instalar Visual Studio en el servidor de compilación (ya hecho).
  • Instale IIS en el servidor de compilación.
  • En IIS, en el sitio web predeterminado, agregue un enlace para https (puerto 443) y use el certificado instalado por Visual Studio (Certificado de desarrollo IIS Express).