错误:该路径将导致.NET MAUI Blazor 项目中的应用程序包之外的文件

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

我正在开发一个 .NET MAUI Blazor 项目,特别是该项目的 NativeClients 部分。我的 Razor 组件组织在 Pages 文件夹下的 HikaridoConnect.Shared 项目中,MAUI 项目本身位于 HikaridoConnect.NativeClients\HikaridoConnect.NativeClients。

我遇到以下错误消息:

Error: The path '../../../../../../../work/1/s/HikaridoConnect.Shared/Components/MediaComponent/MediaTabPanel.razor' would result in a file outside of the app bundle and cannot be used.

我相信此错误与我的 Razor 组件中使用的相对路径有关,但我不确定如何解决它。如何解决此错误并确保我的 Razor 组件正确位于应用程序包中?

任何有关如何解决此问题的指导或建议将不胜感激。谢谢!

Yaml 代码共享 - https://codeshare.io/9ORD60

azure azure-devops blazor pipeline maui
1个回答
0
投票

根据这个githubissue1和这个githubissue2

Razor 组件使用的相对路径是导致您收到错误消息的原因。确保您的 Razor 组件在应用程序包中正确定位,以解决此问题。使用 @using 指令 指定 Razor 组件所在的命名空间是实现此目的的一种方法。例如,如果 Razor 组件位于 HikaridoConnect.Shared.Pages 命名空间中,则可以将以下代码添加到 Razor 组件的顶部:

@using HikaridoConnect.Shared.Pages

在 @page 指令中指定 Razor 组件的路径是解决此问题的另一种方法。例如,如果 Razor 组件位于 HikaridoConnect.Shared/Components/MediaComponent/MediaTabPanel.razor,则可以在 Razor 组件的顶部添加以下行:

@page  "/Components/MediaComponent/MediaTabPanel"

另外,请参阅 Falco Winkler 的SO 主题答案

请参阅此博客,了解如何在 Azure 管道中构建毛伊岛。

我的yaml脚本:-

trigger:
- main

pool:
  vmImage: 'windows-latest'

variables:
  solutionPath: '$(System.DefaultWorkingDirectory)/MauiApp1.sln'
  configuration: 'Release'

jobs:
- job: BuildAndPublish
  displayName: 'Build and Publish .NET MAUI Blazor App'
  steps:
  - task: UseDotNet@2
    inputs:
      packageType: 'sdk'
      version: '7.x' # Use the .NET 7 SDK

  - script: dotnet workload install android
    displayName: 'Install .NET MAUI workload for android'

  - script: dotnet build --configuration $(configuration) $(solutionPath)
    displayName: 'Build .NET MAUI project'

  - script: dotnet publish --configuration $(configuration) $(solutionPath) -o '$(build.artifactStagingDirectory)'
    displayName: 'Publish .NET MAUI project'

  - task: PublishBuildArtifacts@1
    inputs:
      PathtoPublish: '$(build.artifactStagingDirectory)'
      ArtifactName: 'drop'
      publishLocation: 'Container'
© www.soinside.com 2019 - 2024. All rights reserved.