【问题标题】:MVC4 minimum referencesMVC4 最低参考
【发布时间】:2013-10-08 04:47:23
【问题描述】:

因为一个新的 MVC 4 Internet 项目有不少于 47 个引用和 29 个 nuget 包。我想知道我能逃脱的最少引用数量是多少。我想选择我的 Javascript 和 ORM 解决方案。我基本上只想要准系统 MVC 框架。 我能摆脱什么? 对于奖励积分,我必须添加多少才能让 WebApi 正常工作?

【问题讨论】:

    标签: asp.net-mvc-4


    【解决方案1】:

    为了完整起见,这里是我发现部署到 IIS 的工作 ASP MVC 应用程序(在我的例子中是 7.5 版)所需的最少参考资料。也就是说,如果你只有这些引用,你的 MVC 应用程序就会运行,如果你没有它们,它就不会运行。另外,请记住,我是从部署的角度说的,而不是本地开发 Web 服务器的角度。在没有所有这些引用的情况下在本地运行可能会起作用,但在部署到 IIS 时最终会失败。

    最少参考次数

    REFERENCE                        COPY LOCAL*
    ---------                        -----------
    Microsoft.Web.Infrastructure     true
    System                           false
    System.Web                       false
    System.Web.Http                  false
    System.Web.Mvc                   true
    System.Web.WebPages              true
    System.Web.WebPages.Deployment   true
    System.Web.WebPages.Razor        true
    
    当这些引用添加到您的解决方案时,

    *Copy Local 设置为 false。相应地为上面的引用设置 Copy Local 属性,以确保在构建项目时将 DLL 放入 bin 目录中。这样,它们就会被挑选出来进行部署。

    【讨论】:

    • 是的,比我的回答好。谢谢。
    【解决方案2】:

    所以已经有一段时间了, 在更新 2 中,似乎有一个空模板,其中仍有大量未使用的引用,创建解决方案后,您可以安全地删除以下引用:

    • Microsoft.CSharp
    • Microsoft.Web.Infrastructure
    • Microsoft.Web.Mvc.FixedDisplayModes
    • Newtonsoft.Json
    • System.ComponentModel.DataAnnotations
    • System.Data
    • System.Data.DataSetExtensions
    • System.Drawing
    • System.EnterpriseServices
    • System.Net.Http.Formatting
    • System.Net.Http.WebRequest
    • System.Web.ApplicationServices
    • System.Web.DynamicData
    • System.Web.Entity
    • System.Web.Extensions
    • System.Web.Helpers
    • System.Web.Razor
    • System.Web.Services
    • System.Web.WebPages.Deployment
    • System.Xml
    • System.Xml.Linq

    从 Nuget 的角度来看,您可以删除除(及其依赖项)之外的所有包:

    • Microsoft.AspNet.WebApi
    • Microsoft.AspNet.Mvc

    【讨论】:

      【解决方案3】:

      那么不要选择互联网模板。相反,请选择空模板或基本模板。这就是他们的目的。

      Internet 模板需要它拥有的所有引用。如果你想删除其中的一些引用,你必须从模板中删除代码。

      然而,所有模板似乎都包含一些您可能不需要的包,例如 json.net 或 WebApi,但如果您不需要它们,可以将其删除。

      【讨论】:

      • 我正在寻找更多的诊断答案,而不是使用不同的模板来解决同样的问题,但不是这样。
      • @SaintGerbil - 那么答案是 Internet 模板需要它的所有引用。如果要删除引用,则还必须删除代码,例如 AccountController(需要大部分引用)。
      猜你喜欢
      • 1970-01-01
      • 2023-03-05
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多