我正在尝试做的事情:
在我的 web 应用程序上使用 MainLayout 来利用 RCL 的 razor 组件传入导航菜单并使用共享库样式等。
我有一个 RCL,其中包含 2 个 razor 组件“NavMenu.razor”和“SharedLayout.razor”。
因此任何新团队都可以引入 nuget 包并使用我们确定的默认 mainlayout 样式组件。 (稍后添加共享的 IdentityService)。
TLDR:我需要一些帮助来将 RCL 作为 Nuget 包使用。使用 RCL 中的样式为我的所有 Web 应用程序提供一致的外观。我不知道如何作为一个 nuget 引入并实际让它按预期工作。进行了相当多的研究,但遇到了困难。
希望我只是做了一些愚蠢的事情,并且可以指出正确的方向。我以前从未制作过 NuGet 包,更不用说 RCL 了。
当我在解决方案中引用项目(不使用 NuGet)时,它可以工作
但是,下一步我想创建一个 NuGet 来跨项目共享 RCL。 所以我像这样设置 RCL 项目文件:
我标记为 false 的示例服务器项目。
然后从 RCL 项目的命令终端中构建 NuGet
它将 NuGets razor 文件放入解决方案中。
日志文件 - Proj Reload(已解决?通过 clean) 我立即遇到了 Visual Studio 问题,告诉我项目加载时出现意外问题。
通过使用 _import 并完全声明组件,我可以清除此错误。 正在删除 .vs bin obj...
日志文件讨论了基本路径的问题: 如果有人认为有帮助,我可以提供完整的日志。
多个组件名称相同。
当我引入 nuget 时,我收到了来自 RCL NuGet 的 SharedLayout 和 NavMenu 的多个组件使用相同标记错误。
我在 NuGet 的 _Import.razor 中添加了 @using 语句来引用组件。使用 proj ref 时不需要,因为它们位于同一名称空间中。
我还在 SharedLayout.razor 文件中明确引用了 NavMenu 组件。
在实际 web 应用程序的 MainLayout 中,我完全引用了 SharedLayout...所有这些似乎都清除了这个错误。
我宁愿找到一种不同的方法来处理这个错误。由于该名称只有 1 个组件,因此错误有点奇怪,就像将组件复制到命名空间中一样。
没有错误,但失败
在生成 nuget 之前,我混合引用 RCL 中的组件,使其能够无错误地构建。但显然未能正确加载。这仍然是我在使用 RCL NuGet 时遇到的问题吗?还是将 @ body 发送到 Nuget 时存在一些不兼容性?
我期望能够引入包含 Razor 组件的 NuGet 包,并将参数和值传递到组件中。包括身体渲染片段。
使用 NuGets 样式表(未包含在本示例中,因为在此尝试之前发生了失败)。为了在使用共享布局组件的任何应用程序中实现一致的外观。
通过传入要显示的项目来允许动态导航。(如 MainLayout.razor 文件中所示,并按项目示例图片所示工作)。
像引用项目时一样工作。
Reddit 来救援,并观察到我已将 IncludeRazorContentInPack 包含在我的包构建中。我按照我发现的有关将这些类库构建为 NuGet 的主题的一些信息进行了此操作,显然这对于我希望实现的目标来说是错误的举动。