8

新しいMVC4インターネットプロジェクトには、47個以上の参照と29個のnugetパッケージがあります。私が逃げることができる参照の最小数は何であるか疑問に思います。JavascriptとORMソリューションを選択したいのですが。基本的には、必要最低限​​のMVCフレームワークが必要です。何を取り除くことができますか?そしてボーナスポイントについては、WebApiを機能させるために追加しなければならない最小値は何ですか?

4

3 に答える 3

6

完全を期すために、IIS(私の場合はバージョン7.5)にデプロイされた動作中のASPMVCアプリケーションに必要であることがわかった最小限の参照を以下に示します。つまり、これらの参照のみがある場合は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

*これらの参照がソリューションに追加されると、ローカルコピーはfalseに設定されます。プロジェクトをビルドするときにDLLがbinディレクトリに配置されるように、上記の参照のローカルコピープロパティを適宜設定します。そうすれば、それらは展開のためにピックアップされます。

于 2013-10-07T20:47:23.053 に答える
3

しばらく経ちましたが、アップデート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
于 2013-05-22T14:38:29.043 に答える
1

次に、インターネットテンプレートを選択しないでください。代わりに、空のテンプレートまたは基本的なテンプレートを選択してください。それが彼らの目的です。

インターネットテンプレートには、すべての参照が必要です。これらの参照の一部を削除する場合は、テンプレートからコードを削除する必要があります。

ただし、すべてのテンプレートには、json.netやWebApiなど、不要なパッケージが含まれているようですが、不要な場合は削除できます。

于 2012-09-24T21:49:23.270 に答える