2010-04-28 17 views
15

Visual Studio 2010 parece insistir en que esta importación en la aplicación web proyecta¿Qué importa Microsoft.WebApplication.targets en los proyectos de aplicaciones web VS 2010?

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

¿Qué esta importación nos dan y es realmente necesario?

En una nota lateral si elimina esta importación con un editor de texto, Visual Studio la volverá a agregar.

La razón por la que estoy preguntando es cuando el proyecto está compilado en un servidor de compilación que el objetivo no existe porque Visual Studio no está instalado.

Respuesta

4

contiene entradas para MSBuild C: \ Archivos de programa \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

Use la opción de publicar en VS 2010 para crear un paquete postal que se puede implementar en el servidor (Implementar MS)

leer esto: http://vishaljoshi.blogspot.com/2009/03/how-does-web-deployment-with-vs-10.html

Qué servidor de compilación está usando?

+0

Estoy usando la ciudad del equipo. – Simon

+1

Copie el contenido de la ruta anterior y colóquelo en la misma ruta en su servidor bulid. Asegúrese de que .NET 4 esté instalado en el servidor de compilación. Intenta construir –

+1

no es tan fácil cuando un tercero posee el servidor de compilación http://teamcity.codebetter.com/overview.html. Pero les pediré – Simon

3

Tenemos una situación en la que nuestro servidor de compilación CI también aloja algunos sitios web. No tiene una versión de Visual Studio instalada, por lo que el enlace a MSBuildExtensions rompió nuestra compilación en la actualización a vs2010/.net4.0.

Parece demasiado caro tener que instalar VS2010 en la máquina de compilación si no es una máquina de desarrollo también ... ¿podría instalar el paquete de extensión de MSBuild (http://msbuildextensionpack.codeplex.com/) en el servidor de compilación y que todo salga bien? Actualmente no puedo verificar que esto funcione, pero por lo que pude lograr antes de esta publicación, parece una mejor opción que instalar VS2010.

-Daniel

+3

buen punto de Daniel. aunque su publicación debería ser un comentario, no una respuesta – Simon

+0

Intenté esto y desafortunadamente no creo que MSBuild Extension Pack incluya el objetivo de WebApplications, el mencionado en esta pregunta. – Sean

11

Como se sugiere en los comentarios sobre la respuesta del Raj Kaimal, para conseguir este trabajo se puede copiar la carpeta en la misma ubicación en la máquina de construcción.

Si lo desea, también puede poner esa carpeta en otro lugar de su máquina, incluso en relación con su proyecto. Sólo tiene que añadir algo a la csproj para redirigir MSBuildExtensionsPath ..

Por ejemplo, tengo el siguiente en mi csproj (que funciona para VS2010 y VS2012):

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="false" /> 
<PropertyGroup> 
    <MSBuildExtensionsPath32>..\lib\MSBuild.MSVS\</MSBuildExtensionsPath32> 
</PropertyGroup> 
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets"/> 

Luego, dentro de mi carpeta de la liberación (que es un hermano de la carpeta que contiene el csproj), he copiado los siguientes directorios:

  1. % Archivos de programa% \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications → MSBuild.MSVS \ Microsoft \ VisualStudio \ v10.0 \ WebApplications
  2. % Archivos de programa% \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ web → MSBuild.MSVS \ Microsoft \ VisualStudio \ v10.0 Web
+1

Esto funcionó bien para mí y es mi solución preferida. +1 – Llyle

0

Si no implementa desde el servidor de compilación, entonces \ le puede desactivar Microsoft.WebApplication.targets en el servidor de compilación. Vea mi respuesta aquí: https://stackoverflow.com/a/35781566/4955344

+0

¿Quizás la pregunta original debe marcarse como un duplicado de este enlace? – Kmeixner

Cuestiones relacionadas