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 <>' está definido 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, versión en tiempo de ejecución v4.0.30319. y también lo hice en web.config
asp.net-mvc
asp.net-mvc-5.1
mansoor
fuente
fuente
Respuestas:
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) porque recibía un error que indicaba que faltaba una referencia de ensamblaje, es decir
System.Web.Mvc
, aunque estaba en las referencias del proyecto. Después de investigar, noté que la versión de NuGet instalada era 5.2.3, mientras que el proyecto requería 5.2.0. La solución es degradar la versión MVC.Confirme todos los diálogos y estará listo para comenzar.
fuente
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í
/programming/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..
fuente
Este error significa que Visual Studio no puede ubicar el ensamblado System.Web.Mvc para alimentar su intellisense para las vistas de Razor. Es posible que se requieran uno o ambos de los siguientes para solucionarlo.
[root] /Web.config:
<system.web> <compilation targetFramework="4.6" />
Propiedades del 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 ensamblado MVC:
fuente
fuente
Probé 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://stackoverflow.com/a/38371981/2335660
fuente
Eliminar el archivo [projectName] .csproj.user del directorio del proyecto me ayudó.
fuente
Simplemente tuve exactamente el mismo problema y ninguna de las soluciones solucionó el problema. Tuve que agregar esto a mi
web.config
interiorSystem.Web
<compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" />
Lo había quitado al cambiar algunos de los
config
alrededores.fuente
En mi caso, este mensaje se mostró solo cuando Resharper estaba activado. Borré el caché de Resharper, reinicié VS, desactivé Resharper y lo encendí nuevamente. El mensaje ha desaparecido.
fuente
Tuve el mismo problema con el ensamblaje faltante y sucedió que la compilación VS2017 no lo copió correctamente en la carpeta Bin. Estos pasos me ayudaron:
de este comentario: CS0012: El tipo '##### Cualquier tipo #####' se define en un ensamblado al que no se hace referencia
fuente
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">
fuente
targetFramework
en el<httpRuntime>
y<compilation>
etiquetas. Simplemente actualizando el atributo para reflejar correctamente la versión de .NET Framework del proyecto me lo arregló.Compruebe 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 que se genera tiene el valor predeterminado "Ninguno" al invocar la plantilla.
fuente
Agregue lo siguiente a Web.config (en la raíz). Probé absolutamente todas las sugerencias anteriores y nada funcionó hasta que encontré lo siguiente. Espero que le ahorre tiempo a 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>
fuente
Agregue el archivo System.Core.dll a la carpeta bin manualmente. Reinicie VS y compile el proyecto . Resuelto para mi
Tuve errores de diseño en todas las vistas en los ayudantes de @Html y en mis cuadrículas de Kendo.
Agregar el ensamblaje System.Core en Web.config no hizo nada, ni tampoco degradar la versión MVC. Y error al intentar agregar una referencia a System.Core manualmente:
Asegúrese de verificar que TargetFramework en las propiedades del proyecto coincida con el del proyecto web.config.
Captura de pantalla de la carpeta bin
fuente
Para mí, había una opción en el menú del proyecto para "Habilitar C # 6.0 / VB 14". Seleccionar esta opción funcionó. Anteriormente intenté modificar web.config, reiniciar Visual Studio, etc., como se sugirió en esta publicación.
fuente
Me enfrenté al mismo problema. Básicamente, el problema es usar una versión diferente de
System.Web.Mvc
. Así que lo mejor que debes abrir esTools > Nuget Package Manager > Manage Nuget Packages for Solution
. Probablemente puedas verSystem.Web.Mvc
en laCosolidate
pestaña. Actualizar o degradar sería la mejor opción. Si usa el último marco .Net, que es actualmente.Net 4.6.1
, debe actualizar todas lasSystem.Web.Mvc
versiones a5.2.4.0
. ¡Buena suerte!fuente
Bueno, lo solucioné corrigiendo la referencia de ensamblaje en /Views/web.config , vea la imagen:
fuente
elimine el directorio bin, .vs y obj. después de construir su proyecto en Visual Studio.
fuente
Esto sucedió con una de mis opiniones, todas las demás estaban bien. Hice lo siguiente:
fuente
Reiniciar Visual Studio funcionó para mí.
fuente
fuente
Intenta agregar
using system.Linq.Expressions;
fuente
Yo tuve este problema también. Cambiar
targetFramework="4.5.2"
atargetFramwork="4.5"
en el archivo web.config lo resolvió.fuente
Si obtiene esto en solo uno o dos archivos CSHTML ... es un archivo dañado.
Me ha pasado esto con un archivo corrupto que tiene algunos caracteres Unicode ocultos. Intente copiar todo el texto del documento en una instancia nueva del 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 desaparecieron 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 se está equivocando cuando comienza a tragarse grandes trozos de memoria en el abismo.
¿Soy el único que tiene una relación de amor / odio con Resharper?
fuente
Esto puede deberse a que tiene varios proyectos en su solución que no todos tienen como objetivo la misma versión de .NET Framework. Por ejemplo, si su proyecto de aplicación web tiene como destino .NET 4.5 y tiene una referencia de ensamblado a otro proyecto en la solución que tiene como destino .NET 4.5.2. Para solucionar este problema, debe cambiar sus proyectos para que todos tengan como objetivo la misma versión de .NET Framework.
fuente
Si ninguna de las respuestas funciona, utilice esta. ¡Me enfrenté al mismo problema! En realidad, el archivo configuration.cs en la carpeta de migraciones faltaba o se eliminaba. 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 utilizan los siguientes comandos:
Enable-Migrations -Force Add-Migration Initial update-database
Este proceso recreó el archivo configuration.cs y ¡todo funcionó perfectamente!
fuente
Verifique las propiedades de su proyecto para obtener el marco de destino. Resolví este problema en mi proyecto haciendo coincidir mi marco de destino .NET framework 4.6.1 MVC 5.2.3 fue la solución adecuada. Obtuve esa versión MVC de NuGet.
fuente
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.
fuente
Hice TODO lo anterior y, al final, descubrí que lo que me resuelve (en un sitio .net framework 4.7.1 con MVC 5.2.4) fue agregar esto a la raíz web.config dentro de
<compilation>
-<assemblies> <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> </assemblies>
fuente