Je prépare une toute nouvelle solution ASP.NET MVC 5.1. J'ajoute un tas de packages NuGet et je le configure avec Zurb Foundation, etc.
Dans le cadre de cela, j'ai ajouté une référence à un package NuGet interne qui est une bibliothèque de classes portable et je pense que cela provoque un problème sur le serveur de génération.
TeamCity échoue à la construction avec:
Le type 'System.Object' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Runtime, 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 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, le problème n'est pas résolu.
la source
.vs
dossier après la fermeture du projet, l'a rouvert, a supprimé l'web.config
entrée et maintenant il se construit et fonctionne correctement.L'ajout d'une référence à cet assembly System.Runtime.dll a résolu le problème:
Bien que ce fichier dans ce chemin explicite n'existe pas sur le serveur de génération.
Je reviendrai 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 tout Internet.
Google:
la source
La seule façon qui a fonctionné pour moi. Ajoutez l'assembly à web.config
la source
@ Le commentaire de PeterMajeed dans la réponse acceptée m'a aidé à résoudre un problème connexe. Je n'utilise pas la bibliothèque portable, mais j'ai la même erreur de génération sur une nouvelle installation de Windows Server 2012, où j'exécute TeamCity.
L'installation de Microsoft .NET Framework 4.5.1 Developer Pack a résolu le problème (après avoir installé séparément les outils de build MS ).
la source
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 commencées sont apparues après avoir remplacé la version .NET par 4.6 et référencé PCL.
La solution est simple: fermez la solution et supprimez le dossier .vs masqué 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 avoir supprimé à nouveau les références.
Quant à TeamCity, je ne peux pas le dire car ma configuration n'a jamais eu de problème. Mais assurez-vous de réinitialiser le catalogue de travail dans le cadre de votre effort de débogage.
la source
C'est un ancien problème, mais je l'ai rencontré aujourd'hui afin de corriger un pipeline de génération sur notre serveur d'intégration continue. Ajouter
à mon
.csproj
dossier a résolu le problème pour moi.Un peu de contexte: le projet intéressé est un projet complet de framework 4.6.1 .Net, sans problème de build sur les machines de développement. Le problème n'apparaît que sur le serveur de build, que nous ne pouvons pas contrôler, peut être dû à une autre version du SDK ou quelque chose de similaire.
L'ajout de la proposition a
<Reference
résolu l'erreur de construction, au prix d'un avertissement de référence manquant (triangle jaune sur l'entrée ajoutée dans l'arborescence des références) dans Visual Studio.J'espère que cela peut aider les gens dans des scénarios similaires ...
la source
Installez le .NET Runtime ainsi que le pack de ciblage pour la version .NET que vous ciblez.
Le pack développeur est simplement ces deux choses regroupées, mais à ce jour ne semble pas avoir de version 4.6, vous devrez donc 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#
la source
J'étais également confronté à ce problème en essayant d'exécuter un projet ASP .NET MVC après une mise à jour mineure de notre base de code, même s'il a été compilé sans erreur:
Notre projet n'avait jamais rencontré ce problème, j'étais donc sceptique quant à la modification des fichiers de configuration avant de découvrir la cause première. À partir des journaux d'erreurs, j'ai pu localiser cette sortie détaillée du compilateur qui indiquait ce qui se passait réellement:
Apparemment, un nouveau package ajouté à notre projet faisait référence à une ancienne version du .NET Framework, provoquant le problème de "définition dans plusieurs assemblys" (CS1685), qui a conduit à l'erreur du compilateur de la vue rasoir lors de l'exécution.
J'ai supprimé le package incompatible (System.Collections.Immutable.dll) et le problème a cessé de se produire. Cependant, si le package ne peut pas être supprimé dans votre projet, vous devrez essayer la réponse de Baahubali .
la source
Sur notre serveur de build Tfs 2013, j'ai eu la même erreur, dans un projet de test. avec le projet Web principal exécuté sur .Net 4.5.1.
J'ai installé un package nuGet de System Runtime et ajouté la référence à partir de packages \ System.Runtime.4.3.0 \ ref \ net462 \ System.Runtime.dll
Cela m'a résolu.
la source
_._
J'ai dû télécharger et 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
la source
j'ai ajouté System.Runtime.dll au projet bin et cela a fonctionné :)
la source
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 fonctionnait sur la construction, avec des erreurs indiquant que les attributs Unity n'étaient pas des attributs "valides", puis une erreur a dit que je devais faire référence à System.Runtime.
Après de nombreuses recherches, la réinstallation du pack développeur 4.5.2 et rien ne fonctionnait, je me suis dit que ce n'était peut-être qu'une incompatibilité de version. J'ai donc examiné les propriétés de chaque projet, et l'une des bibliothèques de base ciblait 4.5 tandis que toutes les autres ciblaient 4.5.2. J'ai changé celui-là pour cibler également 4.5.2 et les erreurs ont disparu.
la source
Je copie le fichier "C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5.1 \ Facades \ system.runtime.dll" dans le dossier bin du serveur de production, cela résout le problème.
la source
installez https://www.microsoft.com/en-us/download/details.aspx?id=49978 Microsoft .NET Framework 4.6.1 Developer Pack et ajoutez cette ligne de code dans le fichier Web.config
la source
Pour moi, n'a aidé que cette ligne de code:
Assembly.Load("System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
la source
Supprimer la référence sur le Nuget Package Manager et l'ajouter à nouveau a résolu le problème pour moi.
la source