12

当我在 Visual Studio 2010 中创建“空 WebAPI”项目时,添加了几个支持 MVC 网页的新程序集作为参考(下面列表中的几个示例):

  • 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.

我目前正在使用所有程序集将 bin 部署到服务器,直到 JIT 编译错误停止。

我了解 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 回答