VSTS 构建不删除 Web 应用程序的所有文件

VSTS Build Not Dropping All Files for Web Application

当我开始写这个问题时,我的问题是在成功构建 VSTS 之后,我无法看到与我的 Web 应用程序项目相关的文件以供发布。仅存在解决方案中某些其他项目的文件。但是,我刚刚遇到 ,这对我有所帮助。

在 Build 中更改 Content 设置的配置后,我现在可以看到为我的 Web 应用程序项目编译的 .dll 文件 - 即 Bin 的内容该项目下的文件夹。但是我在任何地方都看不到将构建的 Web 应用程序复制到我的服务器所需的其他文件 - 视图、脚本、css 等

我发现 VSTS 的构建和发布功能的强大功能和灵活性非常令人困惑,因为它完全无法满足我们的要求。到目前为止,我只是在 Visual Studio 中右键单击 Web 应用程序项目选择发布并使用 文件系统 发布方法。简单。现在我想自动化构建和部署应用程序,它要复杂很多倍!

所以,谁能告诉我如何获得在 VSTS 中构建的解决方案,然后我可以使用发布定义中的复制文件任务将文件复制到我们的 Web 服务器(服务器是在 Internet 上不可见,所以我使用的是本地托管的代理)?

在 vNext 构建中,使用复制文件或发布构建工件步骤发布构建工件。尝试在代理上使用 本地路径,任何工件在被推送到目的地之前都会被复制到 。例如:

  1. 添加/p:DeployOnBuild=true /p:OutDir="$(build.artifactstagingdirectory)\" Visual 中的参数 Studio Build步骤;
  2. Publish Build Artifacts 任务的 "Path to Publish" 更改为 $(build.artifactstagingdirectory)\_PublishedWebsites\ProjectName:

详情请查看构建步骤的截图,问题如下:

根据您的评论,您已经发布了来自 Visual Studio 的网络应用程序。通常,此操作会在 Project/Properties/PublishProfiles 文件夹下生成一个发布配置文件。您用于发布 Web 应用程序的设置存储在配置文件中。因此,您只需要确保将此发布配置文件签入源代码管理。然后在 TFS 构建中,添加以下 MSBuild 参数:

/p:DeployOnBuild=true /p:PublishProfile="publishprofile.pubxml"