2015-06-02 8 views
7

Es muss etwas sein, das ich nicht verstehe in den Unterschied zwischen Debug-Builds und Release-Builds und seine Verwendung von Referenzen. Ich verwende Entity Framework 6, um eine Verbindung zu einer Datenbank herzustellen, die zuvor eingerichtet wurde. Ich bin in der Lage, das Projekt erfolgreich zu erstellen und auszuführen, während es sich in Debug-Modus befindet. Wenn ich es in den Freigabemodus ändere, erhalte ich sofort Build-Fehler, die anzeigen, dass die Namespaces und Typen, die gerade dort waren, nicht mehr gefunden werden können. Ich überprüfte und soweit ich sagen kann, dass beide Ziel Framework .Net 4.5, die ich gesehen habe, könnte ein Problem für einige andere Leute gewesen sein. Ich sehe keinen Unterschied in dem, was unter Referenzen in meinem Lösungs-Explorer aufgeführt ist.Entity Framework Referenzen fehlen zwischen Debug und Release-Build

Ich benutze Visual Studio 2013. Ich freue mich, jeden Code zur Verfügung stellen, aber ich weiß nicht, was am relevantesten wäre.

Einige der Fehler, die ich bekomme:

The type or namespace name 'Entity' does not exist in the namespace System.Data' (are you missing an assembly reference?) in Holds.Context.cs 
The type or namespace name 'DbContext' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs 
The type or namespace name 'DbSet' could not be found (are you missing a using directive or an assembly reference?) in Holds.Context.cs 

Vielen Dank für jede Leitung, die zur Verfügung gestellt werden kann.

+0

Ihre Konfigurationsdatei, sehen Sie, ob Sie es erweitern können und es wird 2 Konfigurationen für Release vs Debug geben. Überprüfen Sie diese. –

+0

Ich habe das gleiche Problem. Lassen Sie es mich wissen, wenn Sie eine Lösung finden. –

+0

Dito. Die Lösung wird im Debug-Modus, aber nicht im Release-Modus erstellt. Das Entity-Framework wurde über den Nuget Package Manager in die Lösung installiert. – Dib

Antwort

6

In den Freigabemodus wechseln, dann wurde das Entityframework für das Problemprojekt neu installiert. Dieses Problem wurde in meinem Fall behoben.

+1

Obwohl dies das Problem von OP lösen könnte, wäre es am besten, Ihre Antwort mit detaillierten Schritten zur Vorgehensweise zu erläutern. –

+0

Das hat mein Problem gelöst und meine Schritte sind in meiner Antwort [hier] (http://stackoverflow.com/a/33751526/254215) ausführlich beschrieben. – Dib

8

Um dies zu beheben habe ich @OomPiet 's Antwort verwendet. Für mich waren die Schritte wie folgt:

  1. Wechseln Sie in den Debug-Modus
  2. Rebuild Lösung - Erstellen Erfolgreiche
  3. Switch Mode
  4. Rebuild Lösung Release -
  5. In Solution Explorer klicken Sie auf das Projekt fehlgeschlagen Baue das wird nicht bauen (meins war ein Unit-Test-Projekt)
  6. Rechtsklick-Projekt>Manage NuGet Packages
  7. Sicher Installed packages ist
  8. EntityFramework
  9. Klicken Sie Uninstall und Dialog schließen
  10. Klicken Sie auf Lösung in Solution Explorer
  11. Rechtsklick>Manage NuGet Packages for Solution
  12. Installed packages ausgewählt
  13. Select EntityFramework
  14. Klicken Sie Manage
  15. Stellen Sie sicher, wählen ausgewählt
  16. Sicherstellen das Projekt, das Problem verursacht ist checked
  17. Klicken Sie OK und Dialog schließen nach
  18. Click Click auf Lösung in Solution Explorer
  19. Rechtsklick 'Rebuild Lösung'

Jetzt Installation ich zwischen Debug und Release wechseln ohne Kompilierung fehlgeschlagen.Ich hoffe, dass

EDIT hilft: Wenn Sie nur ein Projekt haben EF finden Sie unter @LuckyLikey ‚s Kommentar unten, wo er sagt stattdessen für EF zu suchen, und installieren Sie es in diesem Projekt.

+1

Mann, du hast meinen Tag gerettet .. Ich konnte meinen Augen nicht trauen, als ich dieses Problem hatte. * kotzt in Müll * - Aber nur, um Ihre bereits perfekte Antwort zu vervollständigen: Wenn das Projekt, das dieses Problem verursacht, das einzige Projekt ist, das EF verwendet, wird das Framework in Schritt 14 nicht mehr für 'Verwalten' sichtbar sein. * Suchen Sie stattdessen einfach nach EF und installiere es im Release-Modus in deinem Projekt. * Dadurch wird das Problem behoben. – LuckyLikey

+0

Angemessener Kommentar. Ich werde meine Antwort und das Zitat bearbeiten und auf Ihren Kommentar verweisen. Danke für die zusätzlichen Informationen. – Dib

6

Ok @Dim und @ Oompiet die Antworten sind richtig, aber es ist eine wirklich einfache Möglichkeit, dies über die Package Manager-Konsole zu tun:

Update-Package -reinstall EntityFramework 

, dass es bei der Lösung Ebene tun wird oder wenn Sie wollen, es zu tun auf Projektebene einfach tun:

Update-Package -reinstall EntityFramework -p <YouProjectName> 
0

Im Debug-Modus gibt es zusätzliche Informationen mit den Assemblys (die PDB-Datei).

Dies ermöglicht der Anwendung, die zusätzlichen Abhängigkeiten abzurufen.

Im Freigabemodus gibt es keine solchen Dinge, daher müssen die Baugruppen referenziert werden.

Durch Ausführen von Schritt 10 bis 18 von @Dib wird das Problem gelöst.

Verwandte Themen