我正在开发一个 .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
根据这个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'