75

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

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

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

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

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

4

7 回答 7

113

通过在构建服务器上执行以下步骤,我刚刚在没有安装 VS2010 的情况下完成了这项工作:

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

这似乎对我有用

于 2010-05-14T10:51:51.727 回答
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

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

于 2014-01-23T09:05:50.273 回答
6

您可以安装MSBuild.Microsoft.VisualStudio.Web.targets包。无需手动复制目标来构建服务器。

于 2017-09-08T10:29:39.367 回答
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 fiie。

于 2017-08-22T23:43:53.933 回答
1

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

此外,当您运行 msbuild.exe 时,请确保您正在运行位于 .Net 4.0 框架文件夹中的那个。

于 2010-04-23T13:17:53.630 回答
-1

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

于 2014-03-26T11:04:31.233 回答
-3

要解决此问题,请在构建服务器上安装 Visual Studio 2010 并确保已安装Visual Web Developer功能。

于 2010-05-09T17:14:19.990 回答