.NET MAUI Blazor项目路径错误:文件超出应用包范围求助
修复.NET MAUI Blazor组件路径超出应用包范围的错误
问题背景
开发.NET MAUI Blazor项目的NativeClients模块时,Razor组件存放于HikaridoConnect.Shared项目的Pages文件夹,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.
解决方案
1. 修正组件引用的相对路径
- 梳理项目层级:MAUI项目根目录到
HikaridoConnect.Shared项目的正确相对路径应为../../HikaridoConnect.Shared(假设两个项目处于同级目录下),将错误的多层../路径替换为正确的短路径。 - 推荐方式:避免手动写相对路径,通过命名空间引用组件。在
MediaTabPanel.razor顶部添加命名空间指令:
然后在MAUI项目的@namespace HikaridoConnect.Shared.Components.MediaComponent_Imports.razor中导入该命名空间:
之后直接使用@using HikaridoConnect.Shared.Components.MediaComponent<MediaTabPanel />即可引用组件,无需写文件路径。
2. 检查并调整项目文件配置
- 在
HikaridoConnect.Shared.csproj中,确保Razor组件被标记为可共享的组件类型:<ItemGroup> <Component Include="Components/**/*.razor" /> <Component Include="Pages/**/*.razor" /> </ItemGroup> - 在MAUI项目的
.csproj中,确认已正确引用Shared项目:<ItemGroup> <ProjectReference Include="..\..\HikaridoConnect.Shared\HikaridoConnect.Shared.csproj" /> </ItemGroup> - 移除MAUI项目中任何手动添加的、路径错误的
Content或EmbeddedResource引用,避免冲突。
3. 清理重建项目
执行以下命令清理缓存并重新构建:
dotnet clean dotnet restore dotnet build
内容的提问来源于stack exchange,提问作者Ahune ajé o ahe
相关产品推荐
相关产品推荐

