2017-01-18 3 views
1

Ich habe diese DLL (Microsoft.web.Infrastructure.dll) in vielen Projekt-Paket.config meiner Lösung. Es gibt keine Build-Fehler und die DLL wird heruntergeladen auf Lösung Pakete Ordner. Ich bekomme Laufzeitfehler auf fehlende DLL auf jedem Projekt, das die Anwendung trifft. Wenn ich den Ordner des einzelnen Projektordners anschaue, wird diese DLL nicht kopiert. Wie bereits erwähnt, wird die DLL jedoch in den Paketordner der Lösung heruntergeladen. Temporäre LösungMicrosoft.web.Infrastructure.dll nicht gefunden - Visual Studio 2015

-

  1. manuell kopieren Sie diese DLL zu all einzelnen Projekt ist
  2. Dieses DLL in GAC

Dieses Problem ist nur auf meinem Rechner und nicht auf irgend Maschine eines anderen Kollegen. Überraschenderweise haben einige von ihnen diese DLL in Projektordner kopiert, während einige von ihnen nicht. Es funktioniert für sie ohne diese DLL in GAC und ohne manuellen Aufwand, ein sauberer Wiederaufbau tat alles für sie.

Ich habe eine kurzfristige Lösung, aber ich bin neugieriger zu wissen, wie es funktioniert auf anderen Maschinen und was ich vermisse.

Dinge, die ich bisher versucht haben - reinigen Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root .... Saubere Lösung und in der Nähe Lösung wieder aufzunehmen und schließlich Lösung Rebuild

Visual Studio 2015 hat nicht klar nuget Cache zu Visual Studio verglichen 2013.

FYI - ich habe Visual Studio 2015 und alle anderen Maschinen sind auf 2013, wenn nicht etwas anderes dies wo ich schaue jetzt an.

Jede Hilfe wird geschätzt.

+0

Sie können versuchen, das Paket neu zu installieren - 'Update-Paket -install Microsoft.Web.Infrastructure' – Win

+0

Scheint, als ob einige verwandte Informationen hier: http://stackoverflow.com/questions/13149851/could-not-load-file- or-assembly-microsoft-web-infrastructure –

+0

Win - Wenn ich säubere und neu aufbaue denke ich, dass es es neu installiert. Außerdem bleibt die Frage gleich, wie es auf anderen Maschinen funktioniert. – Raj

Antwort

5

Überprüfen Sie, ob Microsoft.web.Infrastructure.dll in den Projektverweisen vorhanden ist. Wenn nicht, versuchen Sie bitte Win Vorschlag Ihr Paket im Paket-Manager-Konsole neu installiert werden mit dem Befehl folgenden:

-Update-Package -Neuinstallation Microsoft.Web.Infrastructure

Da die NuGet Restore nur Pakete wieder her basierend auf der Datei package.config zu dem Paketverzeichnis, aber nicht die Referenz zu Ihrem Projekt standardmäßig hinzufügen. Daher müssen wir das Paket neu installieren, um Referenzen und Inhaltsdateien in das Projekt einzufügen.

Wenn die DLL bereits in Ihren Projektreferenzen vorhanden ist, müssen Sie den Eigenschaftswert von "Copy Local" überprüfen. Die Eigenschaft Lokale Kopie legt fest, ob eine Referenz in den lokalen Klassenpfad kopiert wird. Das CopyLocal = True sollte gesetzt werden, wenn die Referenz in den bin-Ordner kopiert werden soll. Weitere Informationen finden Sie unter Set the Copy Local Property.

+0

Du hast meinen Tag gerettet – MiDaa

0

Ich fand, dass mein Team DLLs im bin-Ordner hatte, aber nicht eingecheckt wurde, aber die Projektdatei hatte immer noch Referenzen auf diese gelöschten DLLs. Was passierte, war, dass ich diese DLLs immer noch in meinem Mülleimer hatte, während niemand sonst das tat, und diese DLLs waren von microsoft.web.infrastructure abhängig, also war ich der einzige, der diesen Fehler bekam.

Für mich diejenigen, die dll (Referenzen) waren:
System.Web.Razor System.Web.WebPages System.Web.WebPages.Deployment System.Web.WebPages.Razor

Anstatt also zu modifizieren Referenzen in der die Projektdatei (es auf einer anderen Check-in sein werde), löschte ich nur diese DLL in meinem bin, und keine Abhängigkeiten mehr zu microsoft.web.infrastructure.

Verwandte Themen