关于visual studio:当.Net Core Web App面向完整的.Net Framework时,ASP.NET核心标记帮助者使用哪个类Lib?

Which Class Lib for ASP.NET Core tag helpers when .Net Core Web App targets Full .Net Framework?

我创建了一个以.NET框架为目标的ASP.NET核心Web应用程序。这是通过使用Visual Studio ASP.NET核心Web应用程序(.NET框架)模板完成的。

我想创建一些在这个Web应用程序中使用的标记帮助器,并将它们放在库DLL中。最初,我尝试将一个新项目添加到类型类库(.net core)的解决方案中以放置它们,但无法从Web项目引用该库。当我试图通过Visual Studio引用它时,我收到一个对话框,其中说不支持项目引用,因为类库的目标框架与我的网站项目中的目标不兼容。

因此,作为替代方案,我通过Visual Studio类库模板向解决方案添加了一个常规类库项目。我可以成功地将Web项目中的引用添加到此类库。然而,在这个类库项目中,我找不到引用Microsoft.AspNetCore.Razor.Runtime的方法,如果我想把标签助手放在类库中,这是必需的。

所以我对这两种方法都不感兴趣。如何将我的ASP.NET核心标记帮助器放在一个类库中,我可以从面向完整.NET框架的ASP.NET Web项目中引用该类库?


0

这通常意味着两个库都针对不同的东西,即如果类库针对netstandard1.6,而Web应用程序针对net452,那么它将不起作用。

要么您的Web应用程序需要以netcoreapp1.0为目标,要么您的类库必须以netstandard1.0为目标。使用这里的.NET标准库矩阵查看哪个netstandard1.x名字对象支持哪个平台。

因此,如果您的Web应用程序以net452为目标,则必须以netstandard1.0netstandard1.1netstandard1.2为目标。netstandard1.3及更高版本不起作用,因为它需要.NET Framework 4.6。

如果使用的库需要netstandard1.3或更高版本,则必须针对多个平台。即net452netstandard1.3

然后,net452将用于以net452为目标的项目,netstandard1.3将用于netcoreapp1.0应用程序或其他以netstandard为目标的类库。