为什么blazor dotnet core 3.1 webassembly客户端和共享项目是netstandard 2.1?

时间:2020-05-26 14:35:09

标签: asp.net-core blazor asp.net-core-3.1

在core3.1中创建了blazor Web Assembly客户端和服务器端,创建项目时,我们有3个相关项目,

  • 服务器项目=> netcoreapp3.1

  • 客户端项目=> netstandard2.1

  • 共享项目=> netstandard2.1

为什么另外两个项目是netstandard2.1?我需要将netstandard2.1更改为core3.1。

为什么客户和共享项目是netstandard2.1?我可以更改为netcore3.1吗?

2 个答案:

答案 0 :(得分:2)

服务器项目=> netcoreapp3.1

服务器项目是netcoreapp3.1,因为它们在服务器上运行

客户端项目=> netstandard2.1

客户端项目之所以是netstandard2.1,是因为它们通过.Net(不是.Net Core)的Mono运行时(mono.wasm)在客户端(浏览器)上运行。因此,您不能将其从netstandard2.1更改为core3.1。

共享项目=> netstandard2.1

由于客户端项目和服务器项目都共享,因此不能更改为netcore3.1,因为客户端项目只能使用netstandard2.1

希望这对您有帮助...

答案 1 :(得分:2)

.net-core 3.x是.net-standard 2.x的超集。

服务器项目必须是.net核心,因为这是asp.net核心所需要的。

Blazor / Wasm在子集.net-standard上运行,即使这样,对于浏览器中不可用的功能,它也会引发NotSuportedException。就像简单的weights=lr.coefficientMatrix rows = weights.toArray().tolist() df = spark.createDataFrame(rows,["<your list of features columns used for training"])

在.net-core中实施Blazor将需要对Mono进行更改,并且只会带来更多的空缺承诺。它必须适合浏览器的“沙盒”环境。

我需要从netstandard2.1更改为core3.1。

解释为什么(您认为)您需要它。那就是真正的问题所在,也许就是解决方案。

我可以更改为netcore3.1吗?

否。