我从小就尝试将我的WASM应用程序部署到Azure应用程序服务。我以前在static WebApp上使用它,这很好,但是我现在需要在应用程序服务上运行。 我使用了与Blazor Server应用程序相同的管道,而其他一些管道则使用了Web,但没有运气。

问题描述 投票:0回答:1

我猜测它已部署错误的地方或其他任何地方。

我希望有人会友善地救我不发疯。 the thanks很多

问题的原因可能是VSBuild任务生成的ZIP软件包(默认参数)将具有错误的文件结构。它将包含其他文件夹路径。
例如:

- task: VSBuild@1 displayName: 'Build solution' inputs: msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' platform: '$(BuildPlatform)' configuration: '$(BuildConfiguration)'

要删除zip软件包中的其他文件夹路径,我们需要更改VSBuild任务参数:

VSBUILD参数样本:

blazor azure-pipelines devops webassembly
1个回答
0
投票

建造管道样本:

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:publishUrl="$(build.artifactStagingDirectory)\\"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'


- task: ArchiveFiles@2
  displayName: 'Archive $(build.artifactStagingDirectory)'
  inputs:
    rootFolderOrFile: '$(build.artifactStagingDirectory)'
    includeRootFolder: false

- task: AzureRmWebAppDeployment@5
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'namesub'
    appType: 'webApp'
    WebAppName: 'nameoftheapp'
    packageForLinux: '$(build.artifactStagingDirectory)/*.zip'

我们可以使用缩放文件任务enter image description here将所有输出文件汇总。

在这种情况下,它将不包含zip文件中的其他文件夹路径。

恢复:

然后您可以将新的ZIP软件包部署到Azure Web应用程序并检查是否可以工作。
对于更详细的信息,您可以参考以下文档:
部门网络应用程序

通过MSBUILD任务创建的Web软件包(默认参数)具有嵌套的文件夹结构,只能通过Web Deploy。

另一方面,您还可以使用DotNet发布任务直接生成ZIP软件包。有关更多详细信息,您可以参考以下文档:

dotnet发布任务 yaml样品:

trigger: - master pool: vmImage: 'windows-latest' variables: solution: '**/*.sln' buildPlatform: 'Any CPU' buildConfiguration: 'Release' steps: - task: DotNetCoreCLI@2 displayName: 'Publish Web App' inputs: command: 'publish' publishWebProjects: false projects: '**/*.csproj' arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)' zipAfterPublish: True - task: AzureRmWebAppDeployment@5 inputs: ConnectionType: 'AzureRM' azureSubscription: 'namesub' appType: 'webApp' WebAppName: 'nameoftheapp' packageForLinux: '$(build.artifactStagingDirectory)/*.zip'

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.