【问题标题】:Build one web project from a Solution with multiple web projects in Visual Studio Online Build Definition在 Visual Studio Online Build Definition 中从具有多个 Web 项目的解决方案构建一个 Web 项目
【发布时间】:2016-01-02 15:35:23
【问题描述】:

我遇到了一个问题,我需要在 Visual Studio Online 中有两个 Web 项目的解决方案中只构建一个 Web 项目。

  • 我还没有找到如何使用“Visual Studio 构建”步骤仅构建一个项目。

如果存在这样一种方法来使用“Visual Studio Build”步骤来做到这一点,那就太好了。

  • 我还尝试使用“MSBuild”步骤。不幸的是,我在使用 Nuget 恢复软件包时遇到了问题。我收到错误消息:##[error]No file format header found,##[error]Unexpected exit code 1 从工具 NuGet.exe 返回。运行后立即:Nuget.exe restore Myproj.csproj

总结:

如何在 Visual Studio Online 构建定义中从具有多个 Web 项目的解决方案中仅构建一个 Web 项目?

更新

这是我构建时的错误图像。我也使用“Visual Studio Build”步骤或“MSBuild”步骤来获得这个。

还有

我在 VSO 问题中找到了来自 chrisrpatterson 的评论: https://github.com/Microsoft/vso-agent-tasks/issues/571

他说:您不能对 SLN 文件以外的任何内容运行 nuget restore。您应该取消选中该 vsbuild 任务上的恢复 nuget 包。

但我需要包,我不想将包文件夹推送到我的仓库中。

那么,如何在“Visual Studio 构建”步骤中从我的解决方案中恢复包并仅运行一个 Web 项目?

【问题讨论】:

  • 右键单击项目并从上下文菜单中选择构建

标签: c# msbuild azure-devops azure-pipelines


【解决方案1】:

您需要选择 .proj 文件,而不是选择 .sln 文件。

首先,单击“解决方案”字段旁边的省略号按钮。

然后选择您要构建的 .proj 文件。例如,下面的截图显示构建定义配置为构建 ClassLibrary1 项目,而不是整个解决方案(包含 ClassLibrary1 和 ClassLibrary4 项目)

【讨论】:

  • Vicky,我选择了项目,但我得到了与“MSBuild”步骤相同的错误,即:使用 Nuget 恢复包时。我收到错误消息:##[error]No file format header found,##[error]Unexpected exit code 1 从工具 NuGet.exe 返回。运行后立即:Nuget.exe restore Myproj.csproj.
  • 如何只从单个项目中恢复 nuget 包?
  • 在当前版本中,有一个新字段,您也可以在其中指定 nuget 配置路径。
  • 谢谢。这样一个棘手问题的简单解决方案。你为我节省了几个小时
  • @TWilly 要恢复 nuget 包,您将有一个单独的任务,该任务将引用您的解决方案文件 (*.sln)
【解决方案2】:

您可以将新的“Azure App Service Deploy”任务添加到构建定义中,并将“包或文件夹字段”设置为“$(build.artifactstagingdirectory)**\YOURPROJECT.zip”

【讨论】:

    【解决方案3】:

    您可能希望仅使用要构建的 Web 项目来创建解决方案。

    在 Visual Studio 中,您可以创建一个新项目,然后在该对话框中选择“其他项目类型\解决方案”。

    新解决方案可以紧挨着现有解决方案..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-15
      • 2020-05-06
      • 2018-10-02
      • 1970-01-01
      相关资源
      最近更新 更多