【问题标题】:VSTS Build Not Dropping All Files for Web ApplicationVSTS 构建不删除 Web 应用程序的所有文件
【发布时间】:2017-02-27 15:11:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • 如果您使用另一个问题中的 MSBuild 标志,您应该在放置文件夹中看到一个“_PublishedWebsites”文件夹。在该文件夹中,您应该会看到一个应用程序文件夹,其中包含您需要部署到 Web 服务器的所有文件。你看到了吗?
  • 我实际上是在遵循 JimiSweden 发布的第二个答案中的建议。我没有使用 MSBuild 开关,因为张贴者说它们用于创建 WebDeploy 包,而我只是希望将文件直接复制到 Web 服务器。你知道哪个开关会导致“_PublishedWebsites”文件夹吗?
  • 别担心,我在更下方的 cmets 中找到了它 - 它是 /p:outdir=$(build.artifactstagingdirectory) 开关。现在试试看。

标签: tfs azure-devops azure-pipelines-release-pipeline


【解决方案1】:

在 vNext 构建中,使用复制文件或发布构建工件步骤发布您的构建工件。尝试使用代理上的本地路径,将任何工件复制到该路径,然后再将其推送到其目的地。例如:

  1. 添加 /p:DeployOnBuild=true /p:OutDir="$(build.artifactstagingdirectory)\" 可视化中的参数 Studio 构建步骤;
  2. Publish Build Artifacts 任务的“发布路径”更改为 $(build.artifactstagingdirectory)\_PublishedWebsites\ProjectName:

详情请查看以下问题的构建步骤截图:How do I get the the expected output from a TFS 2015 build (to match my XAML build)?

【讨论】:

  • 感谢您的帮助。我想通过更新发布定义中复制文件任务的源参数以指向 PublishedWebsites\ProjectName 文件夹,我基本上实现了相同的目标,尽管我可以看到您的方式更有效。我完全被 VSTS 中的 Build/Release 所困扰。在 VS 中,我只需右键单击应用程序项目,选择发布,它将所需的文件输出到服务器上的共享。 VSTS 中的 Build 函数似乎输出了类似但不同的内容。例如,它包括多个版本的 web.config,但没有 PrecompiledApp.config。
  • @PhilipStratford 从 Visual Studio 发布时您选择哪种发布方法?
  • @Eddie-MSFT 我使用文件系统方法,并将目标设置为我的 Web 服务器上的共享。
  • @PhilipStratford 那么您的项目中是否有具有这些发布设置的发布配置文件?
  • 我愿意,一个在 Visual Studio 本地工作的发布配置文件,我只是想在 VSTS 中复制发布过程。然而,即使我构建的 Web 应用程序在 VSTS 中看起来仍然与 VS 略有不同,但我现在已经设法让它工作了。我意识到我指定的配置的转换不起作用,因此使用了来自错误 web.config 文件的各种设置。现在我已经将转换作为 VSTS 构建过程的一部分进行,一切正常。
【解决方案2】:

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

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

【讨论】:

  • 我试过了,它确实有效(即使我发布的 Web 应用程序仍然没有,由于其他问题)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
相关资源
最近更新 更多