Mat*_*tze 24 c# .net-core asp.net-core asp.net-core-6.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 。有了这个,我就可以根据需要注册我的零件装配,并且控制器(即使是某个区域的一部分)可以很好地集成。ProgramMain
internal static class Program\n{\n public static void Main() => throw new NotImplementedException();\n}\nRun Code Online (Sandbox Code Playgroud)\n
Gur*_*ron 48
您可以按照文档<FrameworkReference Include="Microsoft.AspNetCore.App"/>中的说明添加到库项目文件:.csproj
<Project Sdk="Microsoft.NET.Sdk">
<!--... rest of file-->
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<!--... rest of file-->
</Project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9871 次 |
| 最近记录: |