我正在为我的组织开发内部图书馆。我需要引用通常“属于”网络应用程序的某些类型,例如。提供一些扩展:
WebApplicationOptionsHttpContext如果我使用<Project Sdk="Microsoft.NET.Sdk">,我没有对这些类型的引用,也找不到包含它们的任何 nuget 包。如果我使用<Project Sdk="Microsoft.NET.Sdk.Web">,我无法构建我的类库,因为它被视为应用程序并且必须指定入口点。
所以,我的一般问题是:为 ASP.NET Core 6 编写库的正确方法是什么?
回到 core 2.x 时代,所有东西都有软件包,比如Microsoft.AspNetCore.Http.Abstractions. 它们都停留在版本上2.2.0,我认为它们现在无法使用?
我正在创建一个 ASP.NET Core 6 应用程序,我想在其中集成单独程序集提供的其他区域。我遵循https://learn.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-6.0上的文档。在提供应用部件的项目中,我添加了一个扩展方法,IMvcBuilder可以方便地注册部件组件,例如:
services.AddMvc().AddFeatureXyzParts();\nRun Code Online (Sandbox Code Playgroud)\n该扩展仅执行以下操作:
\npublic static IMvcBuilder AddFeatureXyzParts(this IMvcBuilder builder)\n{\n if (builder == null) throw new ArgumentNullException(nameof(builder));\n builder.AddApplicationPart(typeof(MvcBuilderExtensions).Assembly);\n return builder;\n}\nRun Code Online (Sandbox Code Playgroud)\n在项目文件中,我将Sdk属性从更改Microsoft.NET.Sdk为Microsoft.NET.Sdk.Web隐式引用 ASP.NET Core 6 SDK(因为它是为主应用程序项目设置的),但这会破坏构建,并出现错误,指出程序集缺少以下定义一个Main方法。
由于它不是一个独立的 Web 应用程序程序集,而是一个提供附加控制器类型和服务的部件库,因此 I\xc2\xb4d 希望将该属性设置Sdk回Microsoft.NET.Sdk. 然后我必须手动添加缺少的包引用。为此,该Microsoft.AspNetCore.App包对于 ASP.NET Core 6 来说似乎是错误的选择,并且Microsoft.AspNetCore.App.Refs不得使用。
我需要什么参考资料?
\n更新- 定义所需的入口点以满足构建
\n作为一种允许我引用所需 ASP.NET Core 6 SDK 的解决方法,如果我添加定义方法的Microsoft.NET.Sdk.Web内部类,我就可以使用该 SDK 。有了这个,我就可以根据需要注册我的零件装配,并且控制器(即使是某个区域的一部分)可以很好地集成。 …