ASP.NET 核心 6 应用程序部分项目必须引用哪些 Nuget 包
What Nuget packages must be referenced by an ASP.NET Core 6 application parts project
我正在创建一个 ASP.NET Core 6 应用程序,我想在其中集成由单独程序集提供的其他区域。我遵循 https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-6.0 上的文档。在一个提供app parts的项目中,我添加了一个IMvcBuilder
的扩展方法,方便我注册parts组件,例如:
services.AddMvc().AddFeatureXyzParts();
该扩展只做这样的事情:
public static IMvcBuilder AddFeatureXyzParts(this IMvcBuilder builder)
{
if (builder == null) throw new ArgumentNullException(nameof(builder));
builder.AddApplicationPart(typeof(MvcBuilderExtensions).Assembly);
return builder;
}
在项目文件中,我将 Sdk
属性从 Microsoft.NET.Sdk
更改为 Microsoft.NET.Sdk.Web
以隐式引用 ASP.NET Core 6 SDK(因为它是为主应用程序项目),但这会破坏构建并出现错误,指出程序集缺少 Main
方法的定义。
因为它不是一个独立的网络应用程序集,而是一个运送额外控制器类型和服务的零件库,我想将 Sdk
属性 设置回 Microsoft.NET.Sdk
.然后我必须手动添加缺少的包引用。为此,Microsoft.AspNetCore.App
包似乎是ASP.NET Core 6 的错误选择,并且一定不能使用Microsoft.AspNetCore.App.Refs
。
我需要哪些参考资料?
更新 - 定义所需的入口点以满足构建
作为一种允许我引用所需的 ASP.NET Core 6 SDK 的解决方法,如果我添加一个内部 Program
class,我可以使用 Microsoft.NET.Sdk.Web
SDK定义了一个 Main
方法。有了这个,我可以根据需要注册我的零件装配,控制器(即使是一个区域的一部分)也能很好地集成。
internal static class Program
{
public static void Main() => throw new NotImplementedException();
}
您可以将 <FrameworkReference Include="Microsoft.AspNetCore.App"/>
添加到库项目 .csproj
文件中,如 docs 中所述:
<Project Sdk="Microsoft.NET.Sdk">
<!--... rest of file-->
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<!--... rest of file-->
</Project>
我正在创建一个 ASP.NET Core 6 应用程序,我想在其中集成由单独程序集提供的其他区域。我遵循 https://docs.microsoft.com/en-us/aspnet/core/mvc/advanced/app-parts?view=aspnetcore-6.0 上的文档。在一个提供app parts的项目中,我添加了一个IMvcBuilder
的扩展方法,方便我注册parts组件,例如:
services.AddMvc().AddFeatureXyzParts();
该扩展只做这样的事情:
public static IMvcBuilder AddFeatureXyzParts(this IMvcBuilder builder)
{
if (builder == null) throw new ArgumentNullException(nameof(builder));
builder.AddApplicationPart(typeof(MvcBuilderExtensions).Assembly);
return builder;
}
在项目文件中,我将 Sdk
属性从 Microsoft.NET.Sdk
更改为 Microsoft.NET.Sdk.Web
以隐式引用 ASP.NET Core 6 SDK(因为它是为主应用程序项目),但这会破坏构建并出现错误,指出程序集缺少 Main
方法的定义。
因为它不是一个独立的网络应用程序集,而是一个运送额外控制器类型和服务的零件库,我想将 Sdk
属性 设置回 Microsoft.NET.Sdk
.然后我必须手动添加缺少的包引用。为此,Microsoft.AspNetCore.App
包似乎是ASP.NET Core 6 的错误选择,并且一定不能使用Microsoft.AspNetCore.App.Refs
。
我需要哪些参考资料?
更新 - 定义所需的入口点以满足构建
作为一种允许我引用所需的 ASP.NET Core 6 SDK 的解决方法,如果我添加一个内部 Program
class,我可以使用 Microsoft.NET.Sdk.Web
SDK定义了一个 Main
方法。有了这个,我可以根据需要注册我的零件装配,控制器(即使是一个区域的一部分)也能很好地集成。
internal static class Program
{
public static void Main() => throw new NotImplementedException();
}
您可以将 <FrameworkReference Include="Microsoft.AspNetCore.App"/>
添加到库项目 .csproj
文件中,如 docs 中所述:
<Project Sdk="Microsoft.NET.Sdk">
<!--... rest of file-->
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
<!--... rest of file-->
</Project>