找不到MSBuild目标软件包


73

我想打包我的VS2010 Web应用程序项目,准备使用msdeploy进行部署。在开发机器上,我可以使用:

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

但是在我的构建服务器上,我收到此错误:

错误MSB4057:项目中不存在目标“包”。

我在构建服务器上缺少什么?

Answers:


111

通过在构建服务器上执行以下步骤,我无需安装VS2010就可以正常工作:

  1. 如果未安装.NET Framework 4,请安装它
  2. http://www.iis.net/download/webdeploy安装Web部署工具
  3. 从开发计算机上的C:\ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0文件夹中,将“ Web”和“ Web应用程序”文件夹复制到构建服务器上的等效目录。

这似乎对我有用


3
还要确保您使用的是MSBuild.exe的.net 4版本!(在%windows%\ Microsoft.net \ Framework \ v4.0.30319中)
AndyM 2010年

7
就我而言,问题是我复制了“ Web应用程序”文件夹中的内容,但没有复制“ Web”文件夹中的内容。
willem

3
1注C:\Program Files位将是c:\Program Files (x86),如果你在64位机器上运行32位的MSBuild [像在我的情况](在我的情况下,Web部分是缺少的成分- I假设Microsoft.WebApplications.targets和/或被默默地忽略不存在的Microsoft.Web.Publishing。 * .targets
Ruben Bartelink 2012年

5
谢谢!对我来说,关键的丢失文件夹是C:\ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web我已经拥有“ WebApplications”,但没有“ Web”文件夹
brodie

2
它通过2个更正解决了我的问题:1.程序文件(x86)2.“ MSBuild \ Microsoft \ VisualStudio”具有3个子目录:v10.0,v11.0,v12.0。我正在使用VS 2013(v12.0)。但是,只有将Web文件夹从V10.0复制到v11.0后,问题才得以解决。这可能是值得一提的是后,我开始卸载VS 2012的问题
格雷戈里Khrapunovich

10

我知道这是一个老问题,但是最近我遇到了同样的问题,没有一个答案有帮助。我在构建服务器上缺少以下文件:

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

它是通过以下方式导入的:

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

希望这可以帮助像我这样的人:)


2
为我工作...我复制了webapplications目标文件夹,但没有复制Web文件夹...构建会成功,但不会部署
jdmonty 2014年

这是Visual Studio Build Tools 2017对我来说的问题。我没有选择“ Web开发构建工具”工作负载,因此未安装Web发布目标。修改安装以包括对其进行修复的安装。
杰弗里·哈蒙


4

我遇到了同样的问题。通过添加以下内容来解决:

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

给我的.csproj文件。


1

您需要在生成服务器上安装.Net 4.0。.Net 4.0安装将放置支持打包Web应用程序项目的新MSBuild 4.0。

另外,在运行msbuild.exe时,请确保运行的是.Net 4.0 framework文件夹中的文件。


-1

还可以考虑将msbuild与版本一起使用,与Web部署工具的版本相对应。我遇到了与OP相同的问题。解决方案是将buildServer上的msbuild从4.5更改为4.0。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.