Build-Fehler: fügen Sie einen Verweis auf System.Laufzeit
Ich bin der Vorbereitung einer neuen Marke ASP.NET MVC 5.1-Lösung. Ich bin das hinzufügen in einer Reihe von NuGet-Pakete und setzen Sie es mit Zurb Foundation etc.
Als Teil der, dass, ich habe einen Verweis auf eine Inhouse-NuGet-Pakets, was eine Portable Class Library und ich denke, dies verursacht ein problem auf dem server zu bauen.
TeamCity scheitert das bauen mit:
Den Typ 'System.Object' defined in an assembly that is not referenced. Müssen Sie fügen Sie einen Verweis auf die assembly " System.Runtime, Version=4.0.0.0
Ich ursprünglich Hinzugefügt, das Update für die gleichen oder ähnliche Fehler beim kompilieren der Razor-web-Seiten, die fix in der web.config
<compilation ... >
<assemblies>
<add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</assemblies>
</compilation>
Aber das Problem ist ungelöst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um das Update zu implementieren zunächst erweitern sich die bestehenden web.config compilation-Abschnitt, der wie folgt aussieht standardmäßig:
Einmal ausgebaut habe ich dann Hinzugefügt die folgenden neuen Konfigurations-XML-da wurde ich belehrt:
Den final web.config-tags sollte wie folgt Aussehen:
.vs
Ordner nach Abschluss des Projekts, wieder, entfernte denweb.config
Eintrag und jetzt baut und läuft einwandfrei.Hinzufügen einer Referenz zu diesem System.Runtime.dll Montage fixiert das Problem:
Obwohl die Datei in bestimmten Pfad existiert nicht auf dem server zu bauen.
Werde ich wieder mit mehr Informationen, sobald ich gefunden habe, die Dokumentation, die auf PCL und diese Fassade.
Update
Ja so ziemlich nichts auf die Fassade Baugruppen auf das gesamte internet.
Google:
CSScript.LoadCode
- und dies war der einzige Weg, ich war in der Lage, um es wieder zum laufen.@PeterMajeed Kommentar in der akzeptierten Antwort half mir mit einem verwandten problem. Ich bin nicht mit der tragbaren Bibliothek, haben aber das gleiche build-Fehler, die auf einem frischen Windows Server 2012 installieren, wo ich bin mit TeamCity.
Installation der Microsoft .NET Framework 4.5.1 Developer Pack kümmerte sich um das Problem (nachdem ich separat installiert MS Build-Tools).
Nur so, dass für mich gearbeitet. Fügen Sie die assembly in der web.config
Ich hatte dieses problem einige Lösungen auf VS 2015 (nicht MVC, obwohl), und sogar in der gleichen Lösung auf einem Arbeitsplatz, aber nicht auf einem anderen. Der Fehler begann, erschienen nach dem Wechsel .NET version 4.6 und verweisen auf PCL.
Die Lösung ist einfach: die Lösung Schließen und löschen die versteckten .vs-Ordner in den gleichen Ordner wie die Lösung.
Hinzufügen der fehlenden Referenzen wie bereits in anderen Antworten löst auch das problem, aber der Fehler bleibt gelöst auch nach entfernen der Referenzen wieder.
Als für TeamCity, kann ich nicht sagen, da meine Konfiguration hatte nie ein problem. Aber stellen Sie sicher, dass Sie setzen die Arbeits-Katalog als Teil des debugging-Aufwand.
Installieren .NET-Runtime sowie die Zielgruppenadressierung pack für die .NET-version, die Sie sind targeting.
Dem developer pack ist nur für diese beiden Sachen zusammengefasst, aber bis heute nicht zu haben scheinen eine 4.6 version, so werden Sie zu installieren, die zwei Elemente separat.
Downloads finden Sie hier: http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx#
Es ist ein altes Thema, aber ich Stand ihm heute, um zu beheben, bauen eine pipeline auf unseren continuous integration server. Hinzufügen
meiner
.csproj
Datei das problem bei mir gelöst.Ein bisschen Kontext: der Interessierte-Projekt ist eine vollständige .Net framework 4.6.1 Projekt, ohne build-problem auf die Entwicklung von Maschinen.
Das problem scheint nur auf dem build-server, die wir nicht kontrollieren können, kann durch eine andere SDK-version oder etwas ähnliches.
Hinzufügen des vorgeschlagenen
<Reference
gelöst die build-Fehler, zu dem Preis ein fehlenden Referenz Warnung (gelbes Dreieck auf den zusätzlichen Eintrag in den Referenzen Baum) in Visual Studio.Ich hoffe, dass diese Hilfe können Menschen in ähnlichen Szenarien...
Auf unserer Tfs 2013 build-server hatte ich den gleichen Fehler in einem test-Projekt.
mit der Haupt-web-Projekt am laufen .Net 4.5.1.
Installierte ich ein nuGet-Paket von System zur Laufzeit Hinzugefügt und den Verweis aus
packages\System.Runtime.4.3.0\ref\net462\System.Runtime.dll
Dass es gelöst für mich.
_._
Habe ich benötigt, um download und installieren Sie das Windows 8.0 (nicht 8.1) SDK, damit der Fehler verschwindet auf meinem TeamCity server.
https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk
War ich auch vor diesem problem zu versuchen, eine ASP .NET-MVC-Projekt, nachdem ein kleines update zu unserer codebase, auch wenn es kompiliert ohne Fehler:
Unser Projekt hatte nie dieses problem, so war ich skeptisch über das ändern von Konfigurationsdateien, bevor herauszufinden, die Ursache. Aus den error logs konnte ich finden diese ausführliche compiler-Ausgaben, der darauf hinwies, auf das, was wirklich geschieht:
Offenbar ein neues Paket Hinzugefügt, um unser Projekt verweist auf eine frühere version des .NET Framework, wodurch die "definition in mehreren Baugruppen" Ausgabe (CS1685), was dazu führte, razor view compiler-Fehler zur Laufzeit.
Habe ich entfernt, die nicht kompatibel-Paket (System.Collections.Immutable.dll) und das problem gestoppt Auftritt. Wenn das Paket jedoch nicht entfernt werden kann, in Ihrem Projekt müssen Sie versuchen,Baahubali Antwort.
Ich hatte dieses problem in eine Lösung mit einer Web-API-Projekt und mehrere library-Projekten bereit. Eine der library-Projekten war borking auf bauen, mit Fehlern, der sagte, die Einheit, Attribute waren nicht "gültig" - Attribute, und dann ein Fehler sagte ich brauchte, um Referenz-System.Runtime.
Nach viel suchen, Neuinstallation 4.5.2 Developer Pack und nichts funktioniert, ich dachte, vielleicht war es nur ein Versionskonflikt. Also schaute ich mir die Eigenschaften jedes Projekts und einer der Basis-Bibliotheken wurde targeting 4.5, während alle anderen waren targeting 4.5.2. Ich geändert, dass man auch den Gegner 4.5.2 und der Fehler ging Weg.
fügte ich System.Runtime.dll auf Projekt bin und es hat geklappt 🙂
Kopiere ich die Datei "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.1\Facades\system.runtime.dll" zum bin-Ordner von Produktions-server, dieser das problem lösen.
Entfernen der Referenz über die Nuget-Paket-Manager und re-adding es das problem bei mir gelöst.