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

15
我面临一个问题,需要从Visual Studio Online的解决方案中构建两个Web项目之一。
  • 我没有找到如何使用“Visual Studio Build”步骤构建单个项目。

如果有这样一种方法可以使用“Visual Studio Build”步骤来完成,那就太好了。

  • 我还尝试使用“MSBuild”步骤。不幸的是,在使用Nuget恢复包时出现了问题。运行完Nuget.exe restore Myproj.csproj后,我收到以下错误消息:##[error]No file format header found, ##[error]Unexpected exit code 1 returned from tool NuGet.exe。

总结:

如何从Visual Studio Online中的多个Web项目的解决方案中构建一个Web项目?

更新

这里是我构建时出现的错误图像。我使用“Visual Studio Build”步骤或“MSBuild”步骤时都会遇到此问题。

enter image description here

另外

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

他说:你不能对除SLN文件以外的任何东西运行nuget restore。您应该取消选中vsbuild任务上的“还原nuget包”。

但我需要这些软件包,而且我不想将packages文件夹推送到我的存储库中。

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


右键单击项目,从上下文菜单中选择“生成”。 - snow_FFFFFF
3个回答

32

需要选择.proj文件而非.sln文件。

首先,点击解决方案字段旁边的省略号按钮。 图片描述

接着选择你想要构建的.proj文件。例如,下面的截图显示构建定义配置为构建ClassLibrary1项目,而不是整个解决方案(其中包括ClassLibrary1和ClassLibrary4项目)。 图片描述


Vicky,我选择了这个项目,但是我得到了与“MSBuild”步骤相同的错误,即:在使用Nuget还原包时,我遇到了错误:##[error]未找到文件格式头,##[error]工具NuGet.exe返回意外的退出代码1。就在运行:Nuget.exe restore Myproj.csproj之后。 - Rafael Miceli
1
如何仅从单个项目中恢复NuGet包? - TWilly
在当前版本中,有一个新的字段,您可以在其中指定NuGet配置路径。 - Bertus van Zyl
谢谢。对于一个棘手的问题来说,这是一个非常简单的解决方案。你为我节省了几个小时。 - Mandeep Janjua
@TWilly 要恢复 NuGet 包,您需要一个单独的任务,并且该任务将引用您的解决方案文件 (*.sln)。 - Mandeep Janjua

2
您可以在构建定义中添加一个新的“Azure应用服务部署”任务,并将“包或文件夹字段”设置为“$(build.artifactstagingdirectory)**\YOURPROJECT.zip”。

-6
你可能需要使用你想要构建的Web项目来创建解决方案。
在Visual Studio中,你可以创建一个新项目,在该对话框中选择“其他项目类型\解决方案”。
新解决方案可以与现有的解决方案并排存在。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接