当我在Visual Studio 2010中创建“空WebAPI”项目时,几个支持MVC网页的新程序集被添加为引用(以下列表中的少数示例):
为了清洁起见,我删除了那些我没有使用的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 compliation错误停止。
我理解FileNotFoundException。我知道运行时正在尝试解析该引用。
我的问题: 当您尝试创建的所有内容都是WebAPI网站时,为什么需要随身携带MVC Razor程序集?是否需要删除另一个依赖项?
答案 0 :(得分:17)
不,你不需要所有这些组件。
我总是喜欢从 scratch 构建我的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