12

Visual Studio 2010で「空のWebAPI」プロジェクトを作成したときに、MVC Webページをサポートする新しいアセンブリのいくつかが参照として追加されました(以下のリストのいくつかの例)。

  • System.Web.Razor.dll
  • System.Web.WebPages.Deployment.dll
  • System.Web.WebPages.dll
  • System.Web.WebPages.Razor.dll

クリーンにするために、使用していなかった(または、「使用していない」と思った)DLL参照を削除しました。サーバーにデプロイすると、次のような例外が発生します。

Exception message: Could not load file or assembly 'System.Web.Razor,Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

私は現在、JITコンパイルエラーが終了するまでにかかったすべてのアセンブリを使用してサーバーにbinデプロイを実行しています。

FileNotFoundExceptionを理解しました。ランタイムがその参照を解決しようとしていることを理解しています。

私の質問:作成しようとしているのがWebAPIサイトだけなのに、なぜMVC Razorアセンブリを持ち歩く必要があるのですか?削除する必要がある別の依存関係はありますか?

4

1 に答える 1

17

いいえ、これらすべてのアセンブリは必要ありません。

私はいつも、自分の Web API プロジェクトをゼロから構築することを好みます。テンプレートは使いません。空の ASP.NET プロジェクトを作成し、Microsoft.AspNet.WebApi NuGet パッケージを追加するだけです。

必要と思われる参照のみを次に示します。

Microsoft.CSharp
Microsoft.Web.Infrastructure   // Microsoft.Web.Infrastructure NuGet package
Newtonsoft.Json                // Newtonsoft.Json NuGet package
System.Net.Http                // Microsoft.Net.Http NuGet package
System.Net.Http.Formatting     // Microsoft.AspNet.WebApi.Client NuGet package
System.Net.Http.WebRequest     // Microsoft.Net.Http NuGet package
System.Web.DynamicData
System.Web.Entity
System.Web.ApplicationServices
System.ComponentModel.DataAnnotations
System
System.Data
System.Core
System.Data.DataSetExtensions
System.Web.Extensions
System.Web.Http                // Microsoft.AspNet.WebApi.Core NuGet package
System.Web.Http.WebHost        // Microsoft.AspNet.WebApi.WebHost NuGet package
System.Xml.Linq
System.Drawing
System.Web
System.Xml
System.Configuration
System.Web.Services
System.EnterpriseServices
于 2012-07-04T05:09:55.593 に答える