我创建了一个针对完整.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 回答
这通常意味着你们两个图书馆都针对不同的东西,i.e。如果您的类库以
netstandard1.6
为目标而您的 Web 应用程序以net452
为目标,那么它将不起作用。您的 Web 应用程序需要以
netcoreapp1.0
为目标,或者您的类库必须以netstandard1.0
为目标。在这里使用.NET 标准库矩阵来查看哪个netstandard1.x
名字对象支持哪个平台。因此,如果您的 Web 应用程序以 net452 为目标,则必须定位
netstandard1.0
,netstandard1.1
或netstandard1.2
。netstandard1.3
和更高版本不起作用,因为它需要.NET Framework 4.6.如果使用需要
netstandard1.3
或更高版本的库,则必须定位多个平台。 i.e。net452
和netstandard1.3
。然后
net452
将用于目标net452
的项目中,netstandard1.3
将用于netcoreapp1.0
应用程序或其他目标 netstandard 的类库。