Estoy preparando una nueva solución ASP.NET MVC 5.1. Estoy agregando un montón de paquetes NuGet y configurándolo con Zurb Foundation, etc.
Como parte de eso, agregué una referencia a un paquete interno de NuGet que es una Biblioteca de clases portátil y creo que esto está causando un problema en el servidor de compilación.
TeamCity falla la compilación con:
El tipo 'System.Object' se define en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'System.Runtime, Version = 4.0.0.0
Originalmente agregué la solución para el mismo error o similar al compilar las páginas web de Razor, que solucionan estar en el web.config
<compilation ... >
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
Sin embargo, el problema no está resuelto.
fuente
.vs
carpeta después de cerrar el proyecto, volver a abrirla, eliminar laweb.config
entrada y ahora se construye y funciona bien.Agregar una referencia a este ensamblado System.Runtime.dll solucionó el problema:
Aunque ese archivo en esa ruta explícita no existe en el servidor de compilación.
Volveré a publicar con más información una vez que haya encontrado documentación sobre PCL y estas fachadas.
Actualizar
Sí, prácticamente nada en los ensambles de fachadas en todo Internet.
Google:
fuente
La única forma en que funcionó para mí. Agregue el ensamblado a web.config
fuente
El comentario de @ PeterMajeed en la respuesta aceptada me ayudó con un problema relacionado. No estoy usando la biblioteca portátil, pero tengo el mismo error de compilación en una nueva instalación de Windows Server 2012, donde estoy ejecutando TeamCity.
La instalación de Microsoft .NET Framework 4.5.1 Developer Pack se ocupó del problema (después de haber instalado por separado las herramientas de compilación de MS ).
fuente
Tuve este problema en algunas soluciones en VS 2015 (aunque no MVC), e incluso en la misma solución en una estación de trabajo pero no en otra. Los errores iniciados aparecieron después de cambiar la versión de .NET a 4.6 y hacer referencia a PCL.
La solución es simple: cierre la solución y elimine la carpeta oculta .vs en la misma carpeta que la solución.
Agregar las referencias que faltan como se sugiere en otras respuestas también resuelve el problema, pero el error permanece resuelto incluso después de eliminar las referencias nuevamente.
En cuanto a TeamCity, no puedo decirlo ya que mi configuración nunca tuvo un problema. Pero asegúrese de restablecer el catálogo de trabajo como parte de su esfuerzo de depuración.
fuente
Es un problema antiguo, pero lo enfrenté hoy para arreglar una tubería de compilación en nuestro servidor de integración continua. Agregando
a mi
.csproj
archivo me resolvió el problema.Un poco de contexto: el proyecto interesado es un proyecto completo .Net framework 4.6.1, sin problemas de compilación en las máquinas de desarrollo. El problema aparece solo en el servidor de compilación, que no podemos controlar, puede deberse a una versión diferente del SDK o algo similar.
Agregar lo propuesto
<Reference
solucionó el error de compilación, al precio de una referencia faltante advertencia de (triángulo amarillo en la entrada agregada en el árbol de referencias) en Visual Studio.Espero que esto pueda ayudar a las personas en escenarios similares ...
fuente
Instale .NET Runtime, así como el paquete de orientación para la versión .NET a la que se dirige.
El paquete de desarrollador es solo estas dos cosas agrupadas, pero a partir de hoy no parece tener una versión 4.6, por lo que deberá instalar los dos elementos por separado.
Las descargas se pueden encontrar aquí: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#
fuente
También me enfrentaba a este problema al intentar ejecutar un proyecto ASP .NET MVC después de una pequeña actualización de nuestra base de código, a pesar de que se compiló sin errores:
Nuestro proyecto nunca se había encontrado con este problema, por lo que era escéptico sobre cambiar los archivos de configuración antes de descubrir la causa raíz. De los registros de errores pude localizar esta salida detallada del compilador que señalaba lo que realmente estaba sucediendo:
Aparentemente, un nuevo paquete agregado a nuestro proyecto hacía referencia a una versión anterior de .NET Framework, causando el problema de "definición en múltiples ensamblajes" (CS1685), lo que condujo al error del compilador de la vista de afeitar en tiempo de ejecución.
Eliminé el paquete incompatible (System.Collections.Immutable.dll) y el problema dejó de ocurrir. Sin embargo, si el paquete no se puede eliminar en su proyecto, deberá probar la respuesta de Baahubali .
fuente
En nuestro servidor de compilación Tfs 2013 tuve el mismo error, en un proyecto de prueba. con el proyecto web principal ejecutándose en .Net 4.5.1.
Instalé un paquete nuGet de System Runtime y agregué la referencia de los paquetes \ System.Runtime.4.3.0 \ ref \ net462 \ System.Runtime.dll
Eso lo resolvió para mí.
fuente
_._
Necesitaba descargar e instalar el SDK de Windows 8.0 (y no 8.1) para que el error desapareciera en mi servidor TeamCity.
https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk
fuente
agregué System.Runtime.dll al proyecto bin y funcionó :)
fuente
Tuve este problema en una solución con un proyecto de API web y varios proyectos de biblioteca. Uno de los proyectos de la biblioteca fue borking en la compilación, con errores que decían que los atributos de Unity no eran atributos "válidos", y luego un error decía que necesitaba hacer referencia a System.Runtime.
Después de mucho buscar, reinstalar el paquete de desarrollador 4.5.2, y nada funcionaba, pensé que tal vez era solo una versión no coincidente. Así que miré las propiedades de cada proyecto, y una de las bibliotecas básicas estaba apuntando a 4.5 mientras que todas las demás apuntaban a 4.5.2. Cambié ese también para apuntar a 4.5.2 y los errores desaparecieron.
fuente
Copio el archivo "C: \ Archivos de programa (x86) \ Assemblies de referencia \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ system.runtime.dll" a la carpeta bin del servidor de producción, esto resuelve el problema.
fuente
instale https://www.microsoft.com/en-us/download/details.aspx?id=49978 Microsoft .NET Framework 4.6.1 Developer Pack y agregue esta línea de código en el archivo Web.config
fuente
Para mí solo ayudó esta línea de código:
Assembly.Load("System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
fuente
Eliminar la referencia sobre Nuget Package Manager y volver a agregarlo resolvió el problema para mí.
fuente