Visual studio 2013 生成未在Visual Studio Team Services中发布Web API项目(was VS Online)

Visual studio 2013 生成未在Visual Studio Team Services中发布Web API项目(was VS Online),visual-studio-2013,tfs,build,tfsbuild,azure-devops,Visual Studio 2013,Tfs,Build,Tfsbuild,Azure Devops,我已经在团队服务上创建了VS构建定义。当我对构建进行排队时,它会成功运行,并输出解决方案中所有项目的DLL,但我使用Web Api2创建的服务层除外 当我从放置位置下载工件时,我有一些文件夹保存数据层、业务层和其他帮助程序项目的DLL。我没有的是可以部署到IIS的主服务层dll 这是我的发布设置的屏幕截图 我会错过什么 在VisualStudio中打开Configuration Manager,并确保WebAPI项目包含在您正在构建的配置(调试、发布等)中 您似乎正在使用生成定义的默认设置。使

我已经在团队服务上创建了VS构建定义。当我对构建进行排队时,它会成功运行,并输出解决方案中所有项目的DLL,但我使用Web Api2创建的服务层除外

当我从放置位置下载工件时,我有一些文件夹保存数据层、业务层和其他帮助程序项目的DLL。我没有的是可以部署到IIS的主服务层dll

这是我的发布设置的屏幕截图


我会错过什么

在VisualStudio中打开Configuration Manager,并确保WebAPI项目包含在您正在构建的配置(调试、发布等)中


您似乎正在使用生成定义的默认设置。使用这些设置,“复制文件”任务的内容为“***\bin\$(BuildConfiguration)**”,而web api项目没有BuildConfiguration文件夹。因此,它无法找到web api项目的文件。要复制这些文件,请再添加一个“复制文件”任务,并按以下方式配置设置:

如果需要项目的部署文件,则需要按以下方式设置生成定义:

  • 添加参数
    /p:DeployOnBuild=true;OutDir=“$(build.artifactstagingdirectory)”
    用于
    Visual Studio构建步骤
  • 删除
    复制文件
    步骤
  • 发布生成构件
    步骤设置发布到
    $(build.artifactstagingdirectory)\\\\u PublishedWebsites
    的路径

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

    谢谢。这似乎不像发布操作那样复制文件。我希望global.asax和web.config文件与bin文件夹一起出现在那里。当我右键单击项目并使用“发布”选项时,它会复制运行该服务所需的所有文件,即bin文件夹和global.asax&web.config。此外,“复制文件”步骤似乎仍在从其他项目复制DLL。我只希望发布与服务相关的文件和bin文件夹。我有办法控制吗?稍后当我添加MVC项目时,我还需要采取哪些其他步骤?谢谢。成功了。但是,如果我在解决方案中有多个服务项目和一个mvc项目,这个解决方案会起作用吗?@Eddie MSFT是否有一篇完整的文章介绍这项工作?谢谢