Erreur de construction: vous devez ajouter une référence au système.Runtime

Je prépare un tout nouveau ASP.NET solution MVC 5.1. J'ajoute un tas de paquets NuGet et le configure avec Zurb Foundation etc.

Dans le cadre de cela, j'ai ajouté une référence à un paquet NuGet interne qui est une bibliothèque de classes Portable et je pense que cela cause un problème sur le serveur de construction.

TeamCity échoue la construction avec:

Le type 'Système.L'objet " est défini dans une assemblée qui n'est pas référencé. Vous devez ajouter une référence à assembly "Système.De L'Exécution, Version=4.0.0.0

J'ai initialement ajouté le correctif pour la même erreur ou une erreur similaire lors de la compilation des pages Web de Razor, ce correctif étant dans le web.config

<compilation ... >
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>

Cependant, la question n'est pas résolue.

151
demandé sur knocte 2014-04-03 00:32:50

10 réponses

Pour implémenter le correctif, développez d'abord le web existant.section de compilation de configuration qui ressemble à ceci par défaut:

<compilation debug="true" targetFramework="4.5"/>

Une fois développé, j'ai ensuite ajouté le nouveau XML de configuration suivant comme indiqué:

  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>

La toile finale.les balises de configuration devraient ressembler à ceci:

<compilation debug="true" targetFramework="4.5">
  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>
</compilation>
138
répondu Baahubali 2016-07-27 04:02:50

Ajout d'une référence à ce Système.Runtime.dll assembly a corrigé le problème:

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

Bien que ce fichier dans ce chemin explicite n'existe pas sur le serveur de construction.

Je posterai avec plus d'informations une fois que j'aurai trouvé de la documentation sur PCL et ces façades.

Mettre à jour

Ouais à peu près rien sur les assemblages de façade sur l'ensemble de l'internet.

Google:

(Facades OR Facade) Portable Library site:microsoft.com
108
répondu Luke Puplett 2014-04-02 20:42:11

Le commentaire de@PeterMajeed dans la réponse acceptée m'a aidé avec un problème connexe. Je n'utilise pas la bibliothèque portable, mais j'ai la même erreur de construction sur une nouvelle installation de Windows Server 2012, où je cours TeamCity. L'installation du Microsoft. NET Framework 4.5.1 Developer Pack a résolu le problème (après avoir installé séparément les MS Build Tools).

25
répondu sfuqua 2015-04-28 17:23:33

J'ai eu ce problème dans certaines solutions sur VS 2015 (pas MVC cependant), et même dans la même solution sur un poste de travail mais pas sur un autre. Les erreurs démarrées sont apparues après avoir changé la version. net en 4.6 et référencé PCL.

La solution est simple: Fermez la solution et supprimez le caché .vs dossier dans le même dossier que la solution.

L'ajout des références manquantes comme suggéré dans d'autres réponses résout également le problème, mais l'erreur reste résolue même après supprimez à nouveau les références.

Quant à TeamCity, Je ne peux pas le dire Puisque ma configuration n'a jamais eu de problème. Mais assurez-vous que vous réinitialisez le catalogue de travail dans le cadre de votre effort de débogage.

7
répondu wezzix 2016-05-30 14:01:54

La seule façon qui a fonctionné pour moi. Ajoutez l'assemblage au web.config

<compilation debug="true" targetFramework="4.5">
  <assemblies>     
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />   
  </assemblies>
</compilation>
6
répondu Lorena Pita 2018-02-14 16:02:23

Installez le Runtime. net ainsi que le pack de ciblage pour la version. net que vous ciblez.

Le pack développeur est juste ces deux choses groupées ensemble, mais à partir d'aujourd'hui ne semble pas avoir une version 4.6 donc vous devrez installer les deux éléments séparément.

Les téléchargements peuvent être trouvés ici: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#

2
répondu Oenotria 2015-10-14 15:23:05

J'avais besoin de télécharger et d'installer le SDK Windows 8.0 (et non 8.1) pour faire disparaître l'erreur sur mon serveur TeamCity.

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

2
répondu Rahbek 2017-01-27 07:44:26

J'ai eu ce problème dans une solution avec un projet D'API Web et plusieurs projets de bibliothèque. L'un des projets de bibliothèque était borking on build, avec des erreurs qui disaient que les attributs Unity n'étaient pas des attributs "valides", puis une erreur disait que je devais référencer le système.Runtime.

Après beaucoup de recherches, de réinstallation du pack de développement 4.5.2, et rien ne fonctionnait, j'ai pensé que c'était peut-être juste une discordance de version. J'ai donc regardé les propriétés de chaque projet, et l'une des bases mêmes les bibliothèques ciblaient 4.5 tandis que toutes les autres ciblaient 4.5.2. J'ai changé celui - ci pour cibler également 4.5.2 et les erreurs ont disparu.

1
répondu sliderhouserules 2015-09-18 21:28:09

Sur notre serveur de construction TFS 2013, j'ai eu la même erreur, dans un projet de test. avec le projet web principal en cours d'exécution sur. Net 4.5.1.

J'ai installé un paquet nuGet de System Runtime et ajouté la référence de packages\System.Runtime.4.3.0 \ ref \ net462 \ système.Runtime.dll

Qui l'a résolu pour moi.

1
répondu Bob Lokerse 2016-12-21 08:14:29

Supprimer la référence sur le Gestionnaire de paquets Nuget et l'ajouter à nouveau a résolu le problème pour moi.

-1
répondu Stefan 2017-10-06 11:31:11