我开始重构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项目?
欢迎任何意见。
将.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。