首页 文章

当.Net 核心 Web 应用程序针对完整.Net 框架时,ASP.NET 核心标记助手的哪个类库?

提问于
浏览
1

我创建了一个针对完整.Net 框架的 Asp.Net 核心 Web 应用程序。这是通过使用 Visual Studio ASP.NET 核心 Web 应用程序(.NET 框架)模板完成的.

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

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

两种方法都处于死路。如何将我的 ASP.NET 核心标记助手放在一个类库中,我可以从我的 ASP.NET Web 项目中引用完整的.net 框架?

1 回答

  • 1

    当我尝试通过 Visual Studio 引用它时,我收到一个对话框,表示不支持项目引用,因为类库有一个与我的网站项目中的目标不兼容的目标框架。

    这通常意味着你们两个图书馆都针对不同的东西,i.e。如果您的类库以netstandard1.6为目标而您的 Web 应用程序以net452为目标,那么它将不起作用。

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

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

    如果使用需要netstandard1.3或更高版本的库,则必须定位多个平台。 i.e。 net452netstandard1.3

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

相关问题