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

时间:2016-06-28 23:01:51

标签: azure-devops azure-pipelines-build-task azure-pipelines

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

2 个答案:

答案 0 :(得分:3)

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

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

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

然后,您将获得工件中的部署包,并且可以通过Web部署进行部署。

答案 1 :(得分:1)

我也遇到过这个问题(或者类似的?) 主项目的工件未发布,只发布了测试项目。

查看日志文件时,我发现了两件事。

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

  2. 任务“将文件复制到:$(build.artifactstagingdirectory)”正在使用通配符“ \ bin \ release **”查找内容 此路径在构建步骤“复制文件”/“内容”中设置,默认为“ \ bin \ $(BuildConfiguration)**”,在此下转换为“Variables”/“BuildConfiguration”中的设置构建定义。

  3. 然后我查看了Visual Studio中的项目设置,由于某种原因,主项目将“Build / Output / Output path”中的设置设置为“bin”;将其更改为“bin \ Release”for Release和“bin \ Debug”for debug解决了我的问题。

    <强>解决方案吗

    一个。将VS项目设置“构建/输出/输出路径”设置为“bin \ Release”

    湾(或将VSTS构建步骤“复制文件”/“内容”更改为“ \ bin ”以捕获bin中的所有内容)