【问题标题】:Team Services Build ArtifactsTeam Services 构建工件
【发布时间】:2017-01-12 12:18:47
【问题描述】:

我正在尝试创建一个构建,它将构建我的解决方案,根据需要应用 web.config 转换,最后将所需的输出(构建的 Web api 项目)复制到构建的工件区域。

我正在使用部署...Azure WebApp 模板,其中禁用了 Azure 应用服务部署步骤(因为我们正在迁移到 Azure),在构建步骤中使用以下构建参数:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\" /p:AutoParameterizationWebConfigConnectionStrings=False

除了生成的 zip 文件的结构之外,一切都按预期工作,其结构如下:

{ZipFileName}{ProjectName\Content\C_C\a\1\s\Api{ProjectName\obj\Release\Package\PackageTmp...{BuildContent}

如果可能,我希望内容位于已发布 zip 文件的根目录中。使用 Powershell 或许多其他内置构建任务来操作 $(build.artifactstagingdirectory) 内容的最佳方法是什么?

【问题讨论】:

  • "这是为了找到建好的项目:"什么意思?
  • 是的,写得不好,已编辑。
  • @MattRowett 你解决了这个问题吗?
  • @Matt,您是如何获得 MSBuild 步骤来生成 Web 部署包的?我已将您建议的参数用于 MSBuild,但我似乎无法让它生成 zip。
  • @cesarb 您的意思是部署到 Azure 应用服务吗?如果是这样,则有专门针对此的构建任务。这是为了通过构建步骤直接访问嵌套的构建内容输出。

标签: msbuild azure-devops msbuild-task


【解决方案1】:

您不必担心,因为它不会在部署到 Web 服务器(例如 IIS、Azure Web App)后保留文件夹结构(只是 PackageTmp 文件夹中的文件和文件夹)

如果您仍然需要只包含 PackageTmp 文件夹中的文件,您可以通过Archive Files 步骤将构建步骤添加到存档文件到 zip 文件。

对于 Visual Studio 构建步骤,将 /p:DeployOnBuild=true 指定为 MSBuild 参数。

【讨论】:

  • 在哪里可以看到生成的 zip 文件?我在构建摘要中没有 Artifacts 链接。
  • 找到了,我需要将存档步骤放在发布工件步骤之前。
  • 因为我现在只希望在工件下载中构建项目,我只是将 Publish Artifact...Path To Publish 从 $(build.artifactstagingdirectory) 更改为 {Project}I\obj\Dev \Package\PackageTmp\。这在您的帖子之前并不明显,因为源代码管理中不存在 \obj 文件夹并且无法使用 UI 省略号进行浏览。
  • @MattRowett 根据你的原帖,结构是a\1\s\Api{ProjectName\obj\Release\Package\PackageTmp,所以首先指定Api\{ProjectName]\bin为Path如果您只想在工件下载中构建项目,则要发布 Publish Build Artifact 步骤。其次,obj文件夹在源代码管理中不存在,需要直接指定(值如Api[ProjectName]\obj\Release\Package\PackageTmp,可以在Visual Studio Build log中获取详细路径(搜索CopyAllFilesToSingleFolderForMsdeploy )
猜你喜欢
  • 2016-08-22
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多