【问题标题】:Azure Pipelines Build do NOT update MVC _layout View fileAzure Pipelines Build 不更新 MVC _layout 查看文件
【发布时间】:2020-06-11 10:34:19
【问题描述】:

我使用 Azure Pipelines 自托管代理来构建和部署 MVC 项目,并将网站托管在两个不同的服务器上。问题是我为每个服务器有两个不同的共享/_layout 视图文件,并且我的任务取决于服务器(预定义的变量)替换模板(powershell 脚本)中的 _layout 文件内容。

所以 Pipeline 替换 shared/_layout 文件内容,提交更改,推送。然后开始构建任务。完成后 - 发布工件,然后部署,部署的网站总是从 OLD _layout 文件中查找 JS 脚本。当我检查已发布项目中的视图文件时,我看到内容是正确的。它已正确更换。

但是当我转到 URL 时,我看到该站点仍在寻找旧的 JS 文件......这是为什么呢?

如果我手动发布 MVC 项目,然后将 DLL 文件复制到活动目录,一切正常。但是,当构建来自 Azure 时,它​​就不起作用了。我尝试将 Artifact 发布到本地文件系统而不是 Azure,但结果仍然相同。

为什么它无法读取新的 _Layout 视图文件?

【问题讨论】:

  • 手动发布 MVC 项目时,是从构建代理机器发布还是从构建工作区发布?
  • 我从分支的本地克隆发布。外部代理工作文件夹。

标签: .net asp.net-mvc azure-devops azure-pipelines


【解决方案1】:

尝试检查构建源目录中的 .csproj 文件,看看是否有如下内容,删除它们:

<ItemGroup>
    <Content Remove="Areas\Admin\Views\Shared\_Layout.cshtml" />
    <Content Remove="Views\Shared\_Layout.cshtml" />
</ItemGroup>

这里有一个类似的案例MVC Areas not render _Layout

【讨论】:

  • 没有这样的内容。我怀疑这是因为我使用代理更改了内容。可能如果我在 Azure Pipelne 开始工作之前手动提交正确的 _Layout 就可以了
  • 请尝试从构建代理机器上的构建源目录手动发布,看看结果如何。
  • 我实际上取得了部分成功。当我转到 agent_work\1\a 时,从最后一个 Pipeline Build 中获取 Project.zip 文件并将其提取到 Active 目录中,一切都很好。但是,发布管道不会正确更新内容。这可能与 Azure Artifacts 有关吗?比如没有正确更新?
  • 不,它会不断从 Azure Artifacts 下载一些旧的
  • 你检查过发布定义吗?添加时如何定义工件?您可以清理构建代理机器上的构建源目录,然后再试一次。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
相关资源
最近更新 更多