tom*_*dox 6 c# build-pipeline azure-devops blazor blazor-webassembly
我正在尝试使用 DevOps 构建管道和单独的发布管道在我们的 DevOps 服务器上从我们的 Git 存储库部署 Blazor WASM 托管应用程序。
该项目包括一个服务器项目和一个客户端项目(按照 VS 中 Blazor WebAssembly 托管模板创建的标准结构)。
我使用了经典编辑器和 ASP.NET Core 模板并加载了站点,但控制台显示连接到服务器的 HTTP 错误,这让我认为我部署的是客户端项目而不是服务器项目。我很确定是这样,因为我的 Drop 工件包含一个名为 Client.zip 的文件。
我如何更改它以部署服务器应用程序?
(已经有很多关于此的问题,例如here,但没有一个涵盖经典的编辑器方法)
这是让它为我工作的完整过程:
我还没有尝试过这个,但是 muddybeard210 在 GitHub 上的这篇文章Blazor WASM ASP.NET Core Hosted Azure Devops Only Publishes Client/Shared folder给了我关于如何在经典编辑器中工作的线索。
Run Code Online (Sandbox Code Playgroud)- task: DotNetCoreCLI@2 displayName: Publish inputs: command: 'publish' publishWebProjects: false projects: '**/SkillBoard.Server.csproj' arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'请务必注意,publishWebProjects 设置为 false。这是因为“如果为 true,则任务将尝试在存储库中查找 Web 项目并对它们运行发布命令。Web 项目通过目录中存在的 web.config 文件或 wwwroot 文件夹来标识。” - Azure DevOps 信息按钮
由于原来如此,每次都是选择Client,因为CLIENT项目有一个wwwroot文件夹。将 publishWebProjects 设置为 false,您可以使用项目指定特定项目并使用传统的通配符。
在VS中的管道中,选择添加一个新的管道:
单击底部的“使用经典编辑器”链接
在下一页选择 repo
选择 ASP.NET Core 模板:
这让你得到这个:
然后,您只需要更改发布任务上的一些设置:
在该任务中,取消勾选“发布 Web 项目”,以便显示项目路径框:
然后单击链接图标并选择取消链接:
最后以以下格式输入服务器项目的路径**/YourWebServerProject.csproj:
就是这样。当您运行管道时,您的 drop 现在应该包含一个名为 Server.zip 的文件,而不是 Client.zip:
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |