在 VSTS 中构建项目不会在解决方案中构建所有项目

Building Project in VSTS doesn't build all projects in solution

我遇到了一个奇怪的问题,当我使用 "Visual Studio Build" 创建构建并提供 *.sln 文件时,它假装构建所有项目(我在日志中看到了这一点)但是当涉及到发布工件 解决方案中只有少数项目(主要是测试项目和一些杂项项目,但没有主要项目) 我的依赖项排序正常,因为这个构建在 VS2015 中很好(我目前使用 WebDeploy) 有人见过这种行为吗?

既然您提到了 "WebDeploy",我怀疑您正在构建一个 Web 应用程序项目以及解决方案中的其他一些项目。您看到的行为通常是由默认 "Visual Studio" 构建定义模板引起的。使用此模板的默认设置,"Copy Files" 任务将“**\bin\$(BuildConfiguration)**”文件夹中的文件复制到“$(build.artifactstagingdirectory)”文件夹中,然后发布文件在“$(build.artifactstagingdirectory)”文件夹中。但这不适用于 Web App 项目。

要解决此问题,请在 "Visual Studio Build" 任务的 "MSBuild Arguments" 部分添加以下参数:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\"

然后你会在artifacts中得到一个部署包,你可以通过web deploy来部署。

我也有这个问题(或类似的?) 主要项目的工件没有发布,只有测试项目。

查看日志文件时,我注意到两件事。

  1. 只复制了测试项目中的文件

  2. 任务 "Copy Files to:$(build.artifactstagingdirectory)" 正在使用通配符“\bin\release**”查找内容 此路径在构建步骤 "Copy Files" / "Content" 中设置,默认情况下为“\bin\$(BuildConfiguration)**”,转换为您在 "Variables" 中的设置/ "BuildConfiguration" 在此构建定义下。

然后我查看了 Visual Studio 中的项目设置,由于某种原因,主项目将 "Build / Output / Output path" 中的设置设置为 "bin\";将此更改为 "bin\Release" 用于发布和 "bin\Debug" 用于调试解决了我的问题。

解决方法?

一个。将 VS 项目设置 "Build / Output / Output path" 设置为 "bin\Release"

b。 (或将 VSTS 构建步骤 "Copy Files" / "Content" 更改为“\bin”以捕获 bin 中的所有内容)