如何创建 ASP.NET 核心 class 库
How to create an ASP.NET Core class library
我想为我正在处理的项目使用 Visual Studio 围绕剃刀页面、组件、视图等的工具。
场景如下:我想要一个可插入的主要 Web 应用程序,因此不应直接引用插件(它们是 class 库)。
- class 图书馆应该允许剃刀页面等
- class 库应该允许显示控制器(那个已经可以工作了)
到目前为止我所做的是更改项目文件并将 SDK 更改为 Microsoft.NET.Sdk.Web
您可以通过 GitHub-link.
重现此问题
不过我现在改的项目有"connected services"和launchSettings.json
.
这是我可以忽略的行为,还是项目会因我所做的更改而产生副作用?
您正在寻找的(以及切换到 SDK 的目的)是 Razor Class 库,简称 RCL。看起来您可能是从 ASP.NET 核心站点开始的,这可以解释 launchSettings.json
的存在。 RCL 类似于 ASP.NET 核心站点,因为您可以包含大部分相同的内容:控制器、视图、Razor 页面、视图组件、标签助手、静态文件等。但是,值得注意的是,您不会Program.cs
、Startup.cs
、launchSettings.json
或任何配置文件,如 appsettings.json
。这是因为,归根结底,它只是一个图书馆,而不是独立运行或独立存在的东西。您可以使用 IConfiguration
/IOptions
、ILogger
等标准抽象,但这些的实际实现将来自您的应用程序,而不是库。您应该查阅 documentation 了解更多信息。
我想为我正在处理的项目使用 Visual Studio 围绕剃刀页面、组件、视图等的工具。
场景如下:我想要一个可插入的主要 Web 应用程序,因此不应直接引用插件(它们是 class 库)。
- class 图书馆应该允许剃刀页面等
- class 库应该允许显示控制器(那个已经可以工作了)
到目前为止我所做的是更改项目文件并将 SDK 更改为 Microsoft.NET.Sdk.Web
您可以通过 GitHub-link.
重现此问题不过我现在改的项目有"connected services"和launchSettings.json
.
这是我可以忽略的行为,还是项目会因我所做的更改而产生副作用?
您正在寻找的(以及切换到 SDK 的目的)是 Razor Class 库,简称 RCL。看起来您可能是从 ASP.NET 核心站点开始的,这可以解释 launchSettings.json
的存在。 RCL 类似于 ASP.NET 核心站点,因为您可以包含大部分相同的内容:控制器、视图、Razor 页面、视图组件、标签助手、静态文件等。但是,值得注意的是,您不会Program.cs
、Startup.cs
、launchSettings.json
或任何配置文件,如 appsettings.json
。这是因为,归根结底,它只是一个图书馆,而不是独立运行或独立存在的东西。您可以使用 IConfiguration
/IOptions
、ILogger
等标准抽象,但这些的实际实现将来自您的应用程序,而不是库。您应该查阅 documentation 了解更多信息。