Debe agregar una referencia a System.Runtime

Estoy preparando una nueva solución ASP.NET MVC 5.1. Estoy agregando un montón de paquetes NuGet y configurándolos con la Fundación Zurb, etc.

Como parte de eso, agregué una referencia a un paquete NuGet interno que es una Biblioteca de clases portátil y creo que esto está causando un problema en el servidor de comstackción.

TeamCity falla la comstackción con:

El tipo ‘System.Object’ se define en un conjunto 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 o similar error al comstackr las páginas web de Razor, esa solución está en el web.config

      

Sin embargo, el problema no está resuelto.

Para implementar la corrección, primero expanda la sección de comstackción web.config existente que se ve así por defecto:

  

Una vez expandido, agregué el siguiente nuevo XML de configuración según me indicaron:

     

Las tags finales de web.config deberían verse así:

      

Agregar una referencia a este ensamblado System.Runtime.dll solucionó el problema:

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\Facades\System.Runtime.dll 

Aunque ese archivo en esa ruta explícita no existe en el servidor de comstackción.

Publicaré con más información una vez que haya encontrado alguna documentación sobre PCL y estas Fachadas.

Actualizar

Sí, casi nada en ensambles de fachadas en todo internet.

Google:

 (Facades OR Facade) Portable Library site:microsoft.com 

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 comstackció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 encargó del problema (después de haber instalado MS Build Tools por separado).

Tuve este problema en algunas soluciones en VS 2015 (aunque no en MVC), e incluso en la misma solución en una estación de trabajo pero no en otra. Los errores comenzaron a aparecer 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 .vs oculta en la misma carpeta que la solución.

Agregar las referencias faltantes 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 decir 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.

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 juntas, pero a partir de hoy no parece tener una versión 4.6, por lo que tendrá que instalar los dos elementos por separado.

Las descargas se pueden encontrar aquí: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#

Necesitaba descargar e instalar el SDK de Windows 8.0 (y no de 8.1) para hacer desaparecer el error en mi servidor de TeamCity.

https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk

La única forma que funcionó para mí. Agregue el ensamblado a web.config

      

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 estaba ejecutando borking en build, 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 4.5.2 Developer Pack y nada funcionaba, pensé que tal vez solo era una versión no coincidente. Así que miré las propiedades de cada proyecto, y una de las bibliotecas muy básicas apuntaba a 4.5, mientras que las demás apuntaban a 4.5.2. Cambié ese para también apuntar a 4.5.2 y los errores desaparecieron.

En nuestro servidor de comstackció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 packages \ System.Runtime.4.3.0 \ ref \ net462 \ System.Runtime.dll

Eso lo resolvió para mí.

Eliminar la referencia sobre Nuget Package Manager y volver a agregarlo me solucionó el problema.