c# - 在 ASP.Net MVC Core 中创建新 Controller 时,如何防止 MVC Core 添加一些不需要的包?

标签 c# .net asp.net-mvc asp.net-core scaffolding

我正在开发一个新的 ASP.Net MVC Core 2.1.2 项目,目标是 .Net 4.7.2(所以不是 .Net Core)。 当我通过右键单击 Controller 文件夹“添加”、“ Controller ”添加新 Controller 时,我的新 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(不是 Core)中。

为什么会出现这样的情况,可以避免吗?谢谢

仅供引用,我当然知道我可以简单地将新 Controller 添加为“新类”并从 Controller 继承,而不使用“添加 Controller ”内容,以避免这个问题,但我想了解这里发生的情况。

最佳答案

我记得在创建类似的项目设置(面向 .net 4.* 的 .Net Core 应用程序)时也遇到了同样的问题。

我相信这与您通过您提到的上下文菜单添加 Controller 时获得的脚手架有关。 为了避免接收这些依赖项,您可以做的就是将 Controller 创建为常规 C# 类,并自己添加样板代码(= 继承 Controller 基类并添加所需的 using 语句。)

我不知道在没有这些依赖项的情况下让脚手架工作的任何其他可能性。

关于c# - 在 ASP.Net MVC Core 中创建新 Controller 时,如何防止 MVC Core 添加一些不需要的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51943594/

相关文章:

c# - .Net 应用程序中并发问题的最佳实践

c# - 在 MVC 4 中选择表的所有 tr 并使用复选框将其发送到 Controller

.net - 有没有办法以编程方式确定 .NET 进程中加载​​了哪些 native DLL?

c# - HttpWebRequest/HttpWebResponse 和 cookie 的问题

c# - 带有 Entity Framework 的 ASP.NET : EF does not generate identity automatically

C# 反射和获取属性

.net - 表单背景颜色设置为淡色

c# - 将 c# int 连接成 .jpg

具有数组列表属性的 jQuery JSON ASP.NET MVC 访问对象?

c# - SubSonic 3.0 简单存储库向对象添加 DateTime 属性