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.
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>
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
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).
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.
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>
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#
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
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.
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.
Supprimer la référence sur le Gestionnaire de paquets Nuget et l'ajouter à nouveau a résolu le problème pour moi.