微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Blazor 网络的 CI/CD

如何解决Blazor 网络的 CI/CD

我想为 Blazor Web 客户端应用程序项目设置 CI/CD,以将内容复制到 Azure blob 存储。以下是 CI 任务

- task: VSBuild@1
  displayName: 'Build MyBlazor Web'
  inputs:
    solution: ./MyBlazorWeb/MyBlazorWeb.sln
    vsversion: 16.0
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactStagingDirectory)"'
    configuration: Release
    restoreNugetPackages: true


- task: DotNetCoreCLI@2
  displayName: 'Publishing MyBlazor Web...'
  inputs:
    command: publish
    publishWebProjects: true
    projects: ./MyBlazorWeb/MyBlazorWeb/MyBlazorWeb.csproj
    arguments: '--configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)/drop/MyBlazorWeb'
    artifactName: MyBlazor
    zipAfterPublish: false

- publish: $(Build.ArtifactStagingDirectory)
  artifact: drop

下面是我的CD任务

- task: AzureFilecopy@2
  displayName: 'copy MyBlazorWeb to Static Web Site'
  inputs:
    SourcePath: '$(build.artifactStagingDirectory)/drop/MyBlazorWeb'
    azureSubscription: '$(subscription)'
    Destination: AzureBlob
    storage: '$(storage-account-name)'
    ContainerName: '$web'

AZcopy 抛出以下错误

解析源位置“D:\a\1\a\drop\MyBlazorWeb”时出错:无法枚举目录 D:\a\1\a\drop\MyBlazorWeb\ 文件模式 *。 该系统找不到指定的路径。 (来自 HRESULT 的异常:0x80070003)有关详细信息,请键入“Azcopy /?:Source”或使用详细选项 /V。

我是否遗漏了任何其他任务或没有使用正确的源路径?如果这些任务/步骤不正确,我如何在 Azure 存储中托管 Blazor webassembly?

解决方法

您可以在 AzureFileCopy 任务的 fn register<F>(&mut self,cb: F) where F: for<'b> FnMut(&'b T) + 'a { self.callback = Box::new(cb); } 参数中指定 System.ArtifactsDirectory 变量。

SourcePath

- task: AzureFileCopy@2 displayName: 'Copy MyBlazorWeb to Static Web Site' inputs: SourcePath: '$(System.ArtifactsDirectory)/drop/MyBlazorWeb' azureSubscription: '$(subscription)' Destination: AzureBlob storage: '$(storage-account-name)' ContainerName: '$web' :发布部署期间工件下载到的目录。如果需要将工件下载到代理,则在每次部署之前清除该目录。与 Agent.ReleaseDirectory 和 System.DefaultWorkingDirectory 相同。 示例:System.ArtifactsDirectory

C:\agent\_work\r1\a 是代理范围的变量,因此您不能在发布管道中使用它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。