【问题标题】:MSBuild target package not found未找到 MSBuild 目标包
【发布时间】:2011-02-06 03:18:11
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: msbuild package web-deployment msdeploy


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 无需在构建服务器上安装 Visual Studio。构建/部署过程仅依赖于少数文件(参见 spmason 的帖子)
      【解决方案3】:

      通过在构建服务器上执行以下步骤,我刚刚在没有安装 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”文件夹复制到构建服务器上的等效目录。

      这似乎对我有用

      【讨论】:

      • 还要确保使用 .net 4 版本的 MSBuild.exe! (在 %windows%\Microsoft.net\Framework\v4.0.30319)
      • 就我而言,问题是我复制了“Web Applications”文件夹,而不是“Web”文件夹。
      • +1 注意 C:\Program Files 位将是 c:\Program Files (x86) 如果您在 64 位机器上运行 32 位 MSBuild [就像我的情况一样](在我的情况下,Web 部分是缺少的成分 - 我假设 Microsoft.WebApplications.targets 和/或默默地忽略了 Microsoft.Web.Publishing.*.targets)
      • 谢谢!对我来说,关键丢失的文件夹是 C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web 我已经有了“WebApplications”,但没有“Web”文件夹
      • 它通过 2 个更正解决了我的问题:1. Program Files (x86) 2. "MSBuild\Microsoft\VisualStudio" 有 3 个子目录:v10.0、v11.0、v12.0。我正在使用 VS 2013 (v12.0)。但是,只有在我将 Web 文件夹从 V10.0 复制到 v11.0 后,问题才得以解决。值得一提的是,问题是在我卸载 VS 2012 之后开始的。
      【解决方案4】:

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

      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
      

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

      【讨论】:

      • 为我工作...我复制了 webapplications 目标文件夹但没有复制 web 文件夹...构建会成功但不会部署
      • 这是我使用 Visual Studio Build Tools 2017 的问题。我没有选择“Web 开发构建工具”工作负载,因此没有安装 Web 发布目标。修改安装以包括修复它。
      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题。最后通过添加这个来解决:

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

        【讨论】:

          【解决方案7】:

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

          【讨论】:

          • 我喜欢这个,因为它实际上将它添加到项目中,并且会自动引用正确的版本,而不是尝试手动更改 csproj 文件。
          • 你拯救了我的一天! :)
          猜你喜欢
          • 2013-07-24
          • 1970-01-01
          • 2018-11-15
          • 2018-07-30
          • 1970-01-01
          • 2021-12-16
          • 1970-01-01
          • 1970-01-01
          • 2017-06-01
          相关资源
          最近更新 更多