依赖于 .NET Core 3.1 库的 Blazor .NET Standard 2.0 Razor 组件库
Blazor .NET Standard 2.0 Razor Component Library with Dependency on .NET Core 3.1 Library
我开始重构我的 Blazor 项目,以便我的组件有一个 Razor 组件库项目。使用 Visual Studio 2019 这会创建一个针对 .NET Standard 2.0 的 Razor 组件库。
一个潜在的障碍是我的组件依赖于 .NET Core 3.1 class 库。
谁能建议如何解决这个问题?
(a) 尝试抽象出依赖关系,不确定是否可行,因为无论如何都需要一个依赖关系图,
(b) 将我的 .NET Standard 2.0 RCL 转换为 .NET Core 3.1,这是否会使其无法在我的 Blazor .NET Core 3.1 项目中使用?
欢迎任何建议。
将 .NET Standard 视为接口,将各个框架(.NET Core、.NET Framework、Mono、Unity、Xamarin 等)视为实现。 .NET Core 3.1 实现了 .NET Standard 2.1,因此如果您有一个以 .NET Standard 2.0 为目标的库,则不能从中引用 .NET Core 3.1 库,因为它是一个不同的接口。您必须直接以 .NET Core 3.1 为目标或以 .NET Standard 2.1 为目标。
不过请记住,目前客户端 Blazor 使用 Mono 框架进行 Web 组装,目前,Mono 实现 .NET Standard 2.0,而不是 2.1。这意味着,如果您将库定位到 .NET Core 3.1/.NET Standard 2.1,则只能在服务器端 Blazor 应用程序中使用它。如果您 need/want 也支持客户端 Blazor,那么您将必须继续以 .NET Standard 2.0 为目标。在这种情况下,如果您需要从这个库中引用它,您还需要将其他库定位到 .NET Standard 2.0。
我开始重构我的 Blazor 项目,以便我的组件有一个 Razor 组件库项目。使用 Visual Studio 2019 这会创建一个针对 .NET Standard 2.0 的 Razor 组件库。
一个潜在的障碍是我的组件依赖于 .NET Core 3.1 class 库。
谁能建议如何解决这个问题?
(a) 尝试抽象出依赖关系,不确定是否可行,因为无论如何都需要一个依赖关系图, (b) 将我的 .NET Standard 2.0 RCL 转换为 .NET Core 3.1,这是否会使其无法在我的 Blazor .NET Core 3.1 项目中使用?
欢迎任何建议。
将 .NET Standard 视为接口,将各个框架(.NET Core、.NET Framework、Mono、Unity、Xamarin 等)视为实现。 .NET Core 3.1 实现了 .NET Standard 2.1,因此如果您有一个以 .NET Standard 2.0 为目标的库,则不能从中引用 .NET Core 3.1 库,因为它是一个不同的接口。您必须直接以 .NET Core 3.1 为目标或以 .NET Standard 2.1 为目标。
不过请记住,目前客户端 Blazor 使用 Mono 框架进行 Web 组装,目前,Mono 实现 .NET Standard 2.0,而不是 2.1。这意味着,如果您将库定位到 .NET Core 3.1/.NET Standard 2.1,则只能在服务器端 Blazor 应用程序中使用它。如果您 need/want 也支持客户端 Blazor,那么您将必须继续以 .NET Standard 2.0 为目标。在这种情况下,如果您需要从这个库中引用它,您还需要将其他库定位到 .NET Standard 2.0。