如何防止MVC Core在ASP.Net MVC Core中创建新控制器时添加一些不需要的包?

问题描述 投票:2回答:3

我正在开发一个新的ASP.Net MVC Core 2.1.2项目,目标是.Net 4.7.2(所以不是.Net Core)。当我通过右键单击Controllers文件夹添加一个新的Controller,“添加”,“控制器”,我的新控制器成功创建几乎为空,如预期的那样:

public class AdminController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

但是还有一些依赖项无声地添加到我的项目中:

    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />

我不关心最后一个,但我无法理解为什么它还添加EF Core,我想避免它,特别是因为我在项目中引用的后端程序集已经在使用Entity Framework,但是在其中版本6.x(不是核心)。

为什么它会像这样,可以避免吗?谢谢

仅供参考,当然我知道我可以简单地将我的新控制器添加为“新类”并继承自Controller,而不使用“添加控制器”的东西,以避免这个问题,但我想了解这里发生了什么。

c# .net asp.net-mvc asp.net-core scaffolding
3个回答
0
投票

添加控制器时,visual studio将检查您的项目依赖项。正如您所说,您创建了一个ASP.Net MVC Core 2.1.2项目,因此VS将检查该版本的依赖项并将它们添加到项目中。

如果您想阻止VS进行检查,那么您可以添加一个类并使其从控制器扩展。

© www.soinside.com 2019 - 2024. All rights reserved.