【问题标题】:How to create a build pipeline for Blazor WebAssembly Hosted app on Azure DevOps that publishes the server project not the client?如何在 Azure DevOps 上为发布服务器项目而不是客户端的 Blazor WebAssembly 托管应用程序创建构建管道?
【发布时间】:2021-05-08 01:12:04
【问题描述】:

我正在尝试使用 DevOps 构建管道和单独的发布管道从我们的 Git 存储库在我们的 DevOps 服务器上部署 Blazor WASM 托管应用程序。

该项目由一个服务器项目和一个客户端项目组成(根据 VS 中的 Blazor WebAssembly 托管模板创建的标准结构)。

我使用了经典编辑器和 ASP.NET Core 模板并加载了站点,但控制台显示连接到服务器的 HTTP 错误,这让我觉得我部署的是客户端项目而不是服务器项目。我很确定是这种情况,因为我的 Drop 工件包含一个名为 Client.zip 的文件。

如何更改此设置以改为部署服务器应用程序?

(已经有很多问题,例如here,但没有一个涵盖经典编辑器方法)

【问题讨论】:

    标签: c# azure-devops blazor blazor-webassembly build-pipeline


    【解决方案1】:

    这是让它为我工作的完整过程:

    YAML 方法

    我还没有尝试过,但是 muddybeard210 在 GitHub 上的帖子 Blazor WASM ASP.NET Core Hosted Azure Devops Only Publishes Client/Shared folder 为我提供了如何在经典编辑器中使用它的线索。

    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: 'publish'
        publishWebProjects: false
        projects: '**/SkillBoard.Server.csproj'
        arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
    

    请务必注意,publishWebProjects 设置为 false。这 是因为“如果为真,任务将尝试在 存储库并在它们上运行发布命令。网络项目是 通过存在 web.config 文件或 wwwroot 文件夹来识别 在目录中。” - Azure devops 信息按钮

    由于原来是这样,所以每次都选择Client 因为 CLIENT 项目有一个 wwwroot 文件夹。和 publishWebProjects 设置为 false,可以指定特定项目 与项目并使用传统的通配符。

    经典编辑器方法

    在VS中的管道中,选择添加新的管道:

    点击底部的“使用经典编辑器”链接

    在下一页选择回购

    选择 ASP.NET Core 模板:

    这样你就明白了:

    然后,您只需要更改发布任务上的一些设置:

    在该任务上,取消选中“发布网络项目”,以显示项目路径框:

    然后点击链接图标并选择取消链接:

    最后以**/YourWebServerProject.csproj 格式输入您的服务器项目的路径:

    就是这样。当您运行管道时,您的 drop 现在应该包含一个名为 Server.zip 而不是 Client.zip 的文件:

    【讨论】:

    • 很好的答案@tomredox
    猜你喜欢
    • 2020-12-23
    • 2020-09-18
    • 2019-06-03
    • 1970-01-01
    • 2020-07-22
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多