MSBuild target package not found

MsbuildPackageWeb DeploymentMsdeploy

Msbuild Problem Overview


I want to package my VS2010 web application project ready for deployment with msdeploy. On development machine I can do this using:

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

But on my build server I get this error:

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

What am I missing on the build server?

Msbuild Solutions


Solution 1 - Msbuild

I just got this working without installing VS2010 by following these steps on the build server:

  1. If .NET Framework 4 isn't installed, install it
  2. Install the Web Deployment tool from http://www.iis.net/download/webdeploy
  3. From the C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0 folder on your dev machine copy the "Web" and "Web Applications" folders to the equivalent directory on your build server.

This seems to work for me

Solution 2 - Msbuild

I know it's an old question, but I recently ran into the same issue and none of the answers helped. I was missing following file on my build server:

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

It is imported by:

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

Hope this helps someone like me :)

Solution 3 - Msbuild

You may install MSBuild.Microsoft.VisualStudio.Web.targets package. No need to manually copy targets to build server.

Solution 4 - Msbuild

I experienced the same issue. Ended up resolving by adding this:

<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" />

to my .csproj fiie.

Solution 5 - Msbuild

You need to have .Net 4.0 installed on the build server. The .Net 4.0 install will put the new MSBuild 4.0 which supports packaging web application projects.

Also, when you are running msbuild.exe make sure you are running the one that sits in the .Net 4.0 framework folder.

Solution 6 - Msbuild

Also consider using msbuild with version, corresponding to Web Deployment tool version. I have faced same problem as the OP. The solution was to change msbuild from 4.5 to 4.0 on buildServer.

Solution 7 - Msbuild

To solve this problem install Visual Studio 2010 on the build server and make sure you installed Visual Web Developer feature.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAndrew DaveyView Question on Stackoverflow
Solution 1 - MsbuildspmasonView Answer on Stackoverflow
Solution 2 - MsbuildjoozekView Answer on Stackoverflow
Solution 3 - MsbuildDer_MeisterView Answer on Stackoverflow
Solution 4 - MsbuildcontrashadowView Answer on Stackoverflow
Solution 5 - MsbuildPaul LemkeView Answer on Stackoverflow
Solution 6 - Msbuildandrey.leskovView Answer on Stackoverflow
Solution 7 - MsbuildFitzchak YitzchakiView Answer on Stackoverflow