Blazor Web App(RCL打包NuGet)布局共享问题及解决
解决RCL打包NuGet后组件冲突与运行异常问题
已更新,供后续遇到同类问题的开发者参考
场景背景
- 我通过WebApp的
MainLayout调用RCL(Razor类库)中的NavMenu.razor、SharedLayout.razor组件,目的是实现导航菜单传递与样式共享,让新团队引入NuGet包就能直接使用统一布局。 - 此前用项目引用方式调用RCL组件时,运行完全正常。
遇到的问题
将RCL打包为NuGet包并引用后,出现一系列异常:
- 项目加载异常
- 组件命名冲突
- 编译无报错,但运行时直接失败
问题根源排查
经定位,问题出在RCL项目文件中添加的includeRazorContentInPack标签。该标签会把RCL中的Razor文件直接注入到引用此NuGet包的项目中,进而引发组件命名冲突、引用逻辑混乱等问题。
解决方案
移除RCL项目文件中的includeRazorContentInPack标签,重新打包NuGet包后,所有异常均消失,组件可正常调用。
内容的提问来源于stack exchange,提问作者Alex Holmes
相关产品推荐
相关产品推荐

