我有一个奇怪的问题,当我使用" Visual Studio Build"并提供它假装构建所有项目的* .sln文件(我在日志中看到这一点)但是当涉及到发布工件时,解决方案中只有少数项目(主要是测试项目和一些杂项项目,但没有主要的) 我有依赖关系排序好在VS2015这个构建正常(我目前使用WebDeploy) 有没有人见过这种行为?
答案 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)
我也遇到过这个问题(或者类似的?) 主项目的工件未发布,只发布了测试项目。
查看日志文件时,我发现了两件事。
仅复制了测试项目中的文件
任务“将文件复制到:$(build.artifactstagingdirectory)”正在使用通配符“ \ bin \ release **”查找内容 此路径在构建步骤“复制文件”/“内容”中设置,默认为“ \ bin \ $(BuildConfiguration)**”,在此下转换为“Variables”/“BuildConfiguration”中的设置构建定义。
然后我查看了Visual Studio中的项目设置,由于某种原因,主项目将“Build / Output / Output path”中的设置设置为“bin”;将其更改为“bin \ Release”for Release和“bin \ Debug”for debug解决了我的问题。
<强>解决方案吗
一个。将VS项目设置“构建/输出/输出路径”设置为“bin \ Release”
湾(或将VSTS构建步骤“复制文件”/“内容”更改为“ \ bin ”以捕获bin中的所有内容)