asp.net-mvc - route - select asp-for asp-items
El tipo ''Expresión<>'' se define en un ensamblado al que no se hace referencia (25)
En ASP.NET MVC 4.5.2 Framework.
después de escribir
@Html.LabelFor()
or
@Html.EditorFor()
en vista
Recibo un error: el tipo ''Expresión <>'' se define en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado ''System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089''.
He agregado la referencia de ensamblado System.Core.dll, Versión 4.0.0.0, Runtime Version v4.0.30319. y también lo hice en web.config
Acabo de tener el mismo problema exacto y ninguna de las soluciones solucionó el problema.
Tuve que agregar esto a mi
web.config
dentro de
System.Web
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
Lo había eliminado al cambiar parte de la
config
.
Agregue lo siguiente a Web.config (en la raíz). Intenté absolutamente todo de sugerencias anteriores y nada funcionó hasta que encontré lo siguiente. Espero que ahorre tiempo para alguien más.
Yo uso targetFramework = "4.6.1", pero cámbielo a la versión que usa si es diferente.
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
</system.web>
Eliminar el archivo [projectName] .csproj.user del directorio del proyecto me ayudó.
En Web.config necesitaba cambiar:
<system.web>
<compilation debug="true" targetFramework="4.7">
a
<system.web>
<httpRuntime targetFramework="4.7" />
<compilation debug="true" targetFramework="4.7">
En mi caso, este mensaje se mostró solo cuando Resharper estaba activado. He borrado la caché Resharper, reinicié VS, apagué Resharper y lo volví a encender. El mensaje ha desaparecido.
En mi caso, la solución fue mover ConnectionString dentro de Web.Config. Esta declaración debe estar después de la sección AppSettings.
Este error significa que Visual Studio no puede localizar el ensamblado System.Web.Mvc para alimentar su intellisense para las vistas de Razor. Puede ser necesario uno o ambos de los siguientes para solucionarlo.
- Asegúrese de que la versión del marco .NET para la propiedad de compilación en el archivo web.config principal (el que está en la raíz del sitio web) sea la misma que la especificada en las propiedades del proyecto.
[raíz] /Web.config:
<system.web>
<compilation targetFramework="4.6" />
Propiedades del proyecto:
- Asegúrese de que la versión del ensamblaje MVC especificada en las vistas web.config (la que está en la carpeta de vistas) es la misma que el ensamblaje MVC que está utilizando en su proyecto.
[carpeta de vistas] /web.config:
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Propiedades de referencia de ensamblaje MVC:
Esto puede ser causado si tiene múltiples proyectos en su solución que no todos apuntan a la misma versión de .NET Framework. Por ejemplo, si su proyecto de aplicación web apunta a .NET 4.5 y tiene una referencia de ensamblaje a otro proyecto en la solución que apunta a .NET 4.5.2. Para solucionar esto, debe cambiar sus proyectos para que todos apunten a la misma versión de .NET Framework.
Esto sucedió con uno de mis puntos de vista: todos los demás estaban bien. Hice lo siguiente:
- Crea una nueva vista
- Copie y pegue el contenido de la vista anterior a la nueva
- Eliminado el viejo
- Renombrado el nuevo al viejo
He intentado la mayoría de estos, lo que finalmente funcionó para mí fue descargar el proyecto, editar el archivo csproj y agregar lo siguiente:
<Reference Include="System.Core" />
https://.com/a/38371981/2335660
Intenta agregar
using system.Linq.Expressions;
Me enfrenté al mismo problema.
Básicamente, el problema es usar una versión diferente de
System.Web.Mvc
.
Entonces, lo mejor que debe hacer es abrir
Tools > Nuget Package Manager > Manage Nuget Packages for Solution
.
Probablemente pueda ver
System.Web.Mvc
en la pestaña
Cosolidate
.
Actualizar o rebajar sería la mejor opción.
Si utiliza el último marco .Net, que actualmente es
.Net 4.6.1
, debe actualizar todas las versiones de
System.Web.Mvc
a
5.2.4.0
.
¡Buena suerte!
Me he encontrado con el mismo problema que tú, aunque mucho más tarde.
El problema era que no podía acceder a las vistas de Razor (.cshtml) ya que recibía un error que indicaba que me faltaba una referencia de ensamblaje, es decir,
System.Web.Mvc
, aunque estaba en las referencias del proyecto.
Después de la investigación, noté que la versión instalada de NuGet era 5.2.3, mientras que el proyecto requería 5.2.0.
La solución es degradar la versión MVC.
- Vaya a Proyecto-> Administrador de paquetes NuGet.
- Buscar MVC; Será el primer resultado.
- Lo siguiente es seleccionar una degradación del menú desplegable en los detalles del paquete NuGet y enviar.
Confirme todos los cuadros de diálogo y ya está listo para comenzar.
No estoy seguro de si todavía tiene este problema o no, pero yo también tenía el mismo problema.
Pude encontrar las soluciones aquí
https://.com/questions/6496223/compilation-error-in-net-4-0-web-config-linq-not-found
<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Espero que esto ayude..
Nota: Agregar el ensamblaje System.Core en web.config no hizo nada para mí, ni degradó la versión MVC. Intentar agregar System.Core manualmente haciendo clic con el botón derecho en las referencias dio una excepción:
No se pudo agregar una referencia a ''System.Core''. Este componente ya está referenciado automáticamente por el sistema de compilación.
Asegúrese de verificar que TargetFramework en las propiedades del proyecto coincida con el del proyecto web.config.
Casi todos mis archivos .cshtml para un gran proyecto empresarial arrojaban errores en los ayudantes @Html y en mis cuadrículas Kendo. Revisé el código a fondo y no hubo errores. Esto es lo que finalmente me resolvió:
Después de limpiar el sln, eliminar bin, obj, reconstruir, reiniciar VS, etc., etc., saqué mi carpeta bin en la carpeta del directorio de mi sistema. Agregué manualmente el archivo System.Core.dll al contenedor. Reiniciar y construir proyecto y funcionó.
Para mí, había una opción en el menú del proyecto para "Habilitar C # 6.0 / VB 14". Seleccionar esta opción hizo el truco. Anteriormente intenté modificar web.config, reiniciar Visual Studio, etc., como se sugirió en esta publicación.
Reiniciar Visual Studio me funcionó.
Si ninguna de las respuestas funciona, use esta. ¡Me enfrenté al mismo problema! En realidad, el archivo configuration.cs en la carpeta de migraciones faltaba / eliminado. Eliminé la carpeta de migraciones y también eliminé la tabla de migraciones de la base de datos. A continuación, en Package Manager Console (PM) se utilizaron los siguientes comandos:
Enable-Migrations -Force
Add-Migration Initial
update-database
¡Este proceso recreó el archivo configuration.cs y todo funcionó perfectamente!
Tuve el mismo problema con la falta de ensamblaje y sucedió que la compilación VS2017 no lo ha copiado correctamente en la carpeta Bin. Estos pasos me ayudaron:
- Navegue al nodo de referencias del proyecto web
- Encuentre la referencia a System.Core
- Abra la ventana de propiedades de VS
- En la ventana de propiedades, cambie Copiar local: falso a verdadero
de este comentario: CS0012: El tipo ''##### Cualquier tipo #####'' se define en un ensamblaje al que no se hace referencia
Verifique las propiedades de su proyecto para obtener el marco de Target. Resolví este problema en mi proyecto haciendo coincidir mi marco objetivo .NET framework 4.6.1 MVC 5.2.3 era la solución adecuada. Obtuve esa versión MVC de NuGet.
Verifique que la acción de compilación del archivo cshtml esté establecida en ''Contenido''.
Utilizo ReSharper y he notado que, por alguna razón, el archivo generado por defecto es ''Ninguno'' al invocar la plantilla.
Yo tuve este problema también.
Cambiando
targetFramework="4.5.2"
a
targetFramwork="4.5"
en el archivo web.config lo resolvió.
Si obtiene esto en solo uno o dos archivos CSHTML ... es un archivo corrupto.
Esto ha sucedido con un archivo corrupto que tiene algunos caracteres Unicode ocultos. Intente copiar todo el texto del documento a una nueva instancia de bloc de notas. Borre el contenido del archivo original y guárdelo ... si la longitud del archivo es> 0, hay algo mal.
Elimine el archivo y guarde su instancia de bloc de notas sobre la versión anterior. Todos los errores se fueron para mí.
Me ha pasado esto un par de veces en mi solución. No estoy seguro de qué lo está causando, pero sospecho que Resharper está arruinando cuando comienza a tragar grandes trozos de memoria en el abismo.
¿Soy el único que tiene una relación de amor / odio con Resharper?
- Cerrar el archivo
- Limpiar la solución
- Construye la solución
- Vuelva a abrir el archivo
- Cierra el archivo cshtml
- Reconstruir solución
- Abrir archivo cshtml
- Todavía errores? Reiniciar Visual Studio
- Todavía errores? Use la respuesta de ctm1988