我开始重构我的 Blazor 项目,以便我的组件有一个 Razor 组件库项目。使用Visual Studio 2019,这将创建一个面向.NET Standard 2.0的Razor组件库。
一个潜在的障碍是我的组件依赖于 .NET Core 3.1 类库。
谁能建议如何处理这个问题?
(a)尝试抽象出依赖关系,不确定这是否可能,因为无论如何都需要依赖关系图, (b) 将我的 .NET Standard 2.0 RCL 转换为 .NET Core 3.1,这是否会使其与我的 Blazor .NET Core 3.1 项目不兼容?
欢迎任何建议。
将.NET Standard视为一个接口,将各个框架(.NET Core,.NETFramework,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 应用中使用它。如果还需要/想要支持客户端 Blazor,则必须保持以 .NET Standard 2.0 为目标。在这种情况下,如果需要从此库引用其他库,则还需要将其他库定向到 .NET Standard 2.0。