¿Son realmente necesarios todos los ensamblajes de ASP.NET MVC 4 RC para una implementación de ASP.NET WebAPI RC?

Cuando creé un proyecto "Empty WebAPI" en Visual Studio 2010, varios de los nuevos ensamblajes para admitir las páginas web de MVC se agregaron como referencias (un ejemplo de los pocos en la lista a continuación):

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

En aras de la limpieza, eliminé las referencias de DLL que no estaba usando (o eso pensé que no estaba "usando"). Al implementar en el servidor obtendría excepciones como las siguientes:

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.

Actualmente estoy implementando un contenedor en el servidor con todos los ensamblajes necesarios hasta que cesaron los errores de compilación JIT.

Entiendo la excepción FileNotFoundException. Entiendo que el tiempo de ejecución está tratando de resolver esa referencia.

Mis preguntas): ¿Por qué es necesario transportar los ensamblados MVC Razor cuando todo lo que intenta crear es un sitio WebAPI? ¿Hay otra dependencia que deba eliminarse?

preguntado el 04 de julio de 12 a las 00:07

1 Respuestas

No, no necesita todos esos ensamblajes.

Siempre prefiero construir mis proyectos de Web API desde rayar. No uso las plantillas. Simplemente creo un Proyecto ASP.NET vacío y agrego el Microsoft.AspNet.WebApi Paquete NuGet.

Aquí están las referencias que parecen ser solo necesarias:

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

Respondido 04 Jul 12, 06:07

Esto es de gran ayuda. ¡Gracias! - Reacción21

¿Cómo agregaría la sección de "ayuda" que se encuentra en la plantilla de API web? La sección donde navega a localhost/Ayuda para ver todas las apis .. - guiomié

System.Data.DataSetExtensions, System.Drawing y System.Web.DynamicData no son necesarios en un proyecto WebAPI típico y se pueden eliminar. - damieng

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.