2010-04-09 22 views
66

Quiero empaquetar mi proyecto de aplicación web VS2010 listo para implementarse con msdeploy. En la máquina de desarrollo que pueda hacer esto usando:Paquete de destino de MSBuild no encontrado

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package 

Pero en mi servidor de compilación me sale este error:

error MSB4057: The target "package" does not exist in the project.

¿Qué me falta en el servidor de compilación?

Respuesta

107

yo acabamos de este trabajo sin necesidad de instalar VS2010 siguiendo estos pasos en el servidor de compilación:

  1. Si .NET Framework 4 no está instalado, instalarlo
  2. instalar la herramienta de implementación web de http://www.iis.net/download/webdeploy
  3. Desde la carpeta C: \ Archivos de programa \ MSBuild \ Microsoft \ VisualStudio \ v10.0 en su máquina de desarrollo, copie las carpetas "Web" y "Aplicaciones Web" al directorio equivalente en su servidor de compilación.

Esto parece funcionar para mí

+3

¡También asegúrese de utilizar la versión .net 4 de MSBuild.exe! (en% windows% \ Microsoft.net \ Framework \ v4.0.30319) – AndyM

+7

En mi caso, el problema fue que había copiado en la carpeta "Aplicaciones web", pero no en la carpeta "Web". – willem

+0

Esta respuesta eliminó este error. Gracias spmason! – Stewie

1

Necesita tener .Net 4.0 instalado en el servidor de compilación. La instalación de .Net 4.0 incluirá el nuevo MSBuild 4.0 que admite proyectos de aplicaciones web de empaquetado.

Además, cuando está ejecutando msbuild.exe, asegúrese de ejecutar el que se encuentra en la carpeta de marco de .NET 4.0.

-3

Para resolver este problema, instale Visual Studio 2010 en el servidor de compilación y asegúrese de haber instalado la característica Visual Web Developer.

+5

No es necesario instalar Visual Studio en el servidor de compilación. El proceso de compilación/implementación solo depende de un puñado de archivos (ver la publicación de spmason) –

+2

Estoy intentando realmente no rechazar esto ... –

+0

Esto es exagerado – Matt

9

Sé que es una vieja pregunta, pero recientemente me encontré con el mismo problema y ninguna de las respuestas ayudaron. Me estaba perdiendo siguiente archivo en mi servidor de compilación:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 
    \v11.0\Web\Microsoft.Web.Publishing.targets 

Se importa por:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio 
    \v11.0\WebApplications\Microsoft.WebApplication.targets 

Esperamos que esto ayude a alguien como yo :)

+2

funcionó para mí ... Copié la carpeta de destino webapplications pero no la carpeta web ... la compilación tendría éxito pero simplemente no implementaría – jdmonty

+0

Esto era el problema para mí con Visual Studio Build Tools 2017. No había seleccionado la carga de trabajo de "herramientas de compilación de desarrollo web", por lo que el destino de publicación web no estaba instalado. Modificando la instalación para incluir que lo arregló. –

-1

También considere el uso de msbuild con la versión, correspondiente a Versión de la herramienta de implementación web. He tenido el mismo problema que el OP. La solución fue cambiar msbuild de 4.5 a 4.0 en buildServer.

0

Tuve el mismo problema. Finalizó la resolución al agregar esto:

<PropertyGroup> 
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> 
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
</PropertyGroup> 

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> 

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

a mi .csproj fiie.

Cuestiones relacionadas