我想打包我的VS2010 Web应用程序项目,可以与MSDEPLOY一起部署。在开发机器上,我可以使用以下方式这样做:

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

但是在我的构建服务器上,我会发现此错误:

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

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

有帮助吗?

解决方案

我刚刚在没有安装VS2010的情况下使用了此操作,通过在构建服务器上遵循这些步骤:

  1. 如果未安装.NET Framework 4,请安装
  2. 从中安装Web部署工具 http://www.iis.net/download/webdeploy
  3. 从C: Program Files MSBUILD MICROSOFT VISUALSTUDIO VISTURESTUDIO V10.0文件夹在Dev Machine上复制“ Web”和“ Web Applications”文件夹在您的build Server上的等效目录。

这似乎对我有用

其他提示

我知道这是一个古老的问题,但是我最近遇到了同一问题,并且没有任何答案有帮助。我在构建服务器上缺少关注文件:

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

希望这对像我这样的人有帮助:)

您可以安装 msbuild.microsoft.visualstudio.web.targets 包裹。无需手动将目标复制到构建服务器。

我经历了同样的问题。最终通过添加以下方法来解决:

<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。

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

另外,当您运行msbuild.exe时,请确保您正在运行位于.NET 4.0 Framework文件夹中的一个。

还考虑使用MSBUILD与版本,对应于Web部署工具版本。我面临着与OP相同的问题。解决方案是在BuildServer上将MSBUILD从4.5更改为4.0。

要解决此问题,请在构建服务器上安装Visual Studio 2010并确保您安装了 Visual Web Developer 特征。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top