在Visual Studio Team Services(之前是VS Online)中构建不发布Web API项目

6
我在Team Services上创建了一个VS构建定义。当我排队并运行它时,除了使用Web Api2创建的服务层之外,它还为解决方案中的所有项目输出dlls。
当我从存储位置下载构建产物时,有文件夹保存数据层、业务层和其他辅助项目的dlls。但是我缺少可以部署到IIS的主要服务层dll。
这是我的发布设置截图。

enter image description here

我可能错过了什么?

2个回答

11

看起来你正在使用构建定义的默认设置。 使用这些设置,“复制文件”任务的内容为“**\ bin \ $(BuildConfiguration)**”,而Web API项目没有“buildconfiguration”文件夹,因此无法找到Web API项目的文件。要复制这些文件,请添加一个“复制文件”任务,并按以下方式配置设置:

enter image description here

如果您想要项目的部署文件,需要将构建定义设置如下:

  1. Visual Studio Build步骤添加参数/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)".
  2. 删除Copy Files步骤.
  3. 将路径设置为$(build.artifactstagingdirectory)\\_PublishedWebsites以用于Publish Build Artifacts步骤。

然后您应该会在drop文件夹中获得部署文件。


谢谢。这似乎不像发布操作那样复制文件。我希望global.asax和web.config文件与bin文件夹一起存在。当我右键单击项目并使用发布选项时,它会复制运行服务所需的所有文件,包括bin文件夹、global.asax和web.config。 - user20358
此外,复制文件步骤似乎仍在从其他项目中复制dll文件。我原本期望只发布与服务相关的文件和bin文件夹。我能控制这个吗?当我添加MVC项目时,我需要采取哪些其他步骤? - user20358
谢谢。那个有效。但是,如果我的解决方案中有多个服务项目和一个 MVC 项目,这个解决方案是否有效? - user20358
@Eddie-MSFT,这项工作有完整的文章吗?谢谢。 - huoxudong125

-1
在VisualStudio中打开配置管理器,并确保WebAPI项目已包含在您正在构建的配置(调试,发布等)中。

enter image description here


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