依赖于.NET Core 3.1库的Blazor .NET Standard 2.0 Razor组件库

问题描述 投票:0回答:1

我开始重构Blazor项目,以便为我的组件创建一个Razor组件库项目。使用Visual Studio 2019,这将创建一个针对.NET Standard 2.0的剃刀组件库。

一个潜在的阻碍因素是我的组件依赖于.NET Core 3.1类库。

谁能建议如何解决这个问题?

((a)尝试抽象出依赖关系,因为无论如何都需要一个依赖关系图,因此不确定是否可能,(b)将我的.NET Standard 2.0 RCL转换为.NET Core 3.1,这是否会使它不兼容我的Blazor .NET Core 3.1项目?

欢迎任何意见。

blazor blazor-server-side
1个回答
0
投票

将.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应用程序中使用它。如果您还需要/想要支持客户端Blazor,则必须始终以.NET Standard 2.0为目标。在这种情况下,如果需要从该库中引用其他库,则还需要将其他库定位到.NET Standard 2.0。

© www.soinside.com 2019 - 2024. All rights reserved.