Ich habe bemerkt, dass diese seltsame Sache passiert ist, vielleicht ist es ein Käfer, aber ich könnte etwas selbst vermissen.
Angenommen, Sie haben eine Lösung mit zwei Projekten: Eines ist ein MVC3-Projekt, ein anderes ist eine Klassenbibliothek für den Datenzugriff (Entity Framework-Modellklassen, Datenkontext und so).
Die Klassenbibliothek verweist auf die Bibliotheken EntityFramework
(EF6) und EntityFramework.SqlServer
.
Und das MVC-Projekt verweist auf diese Klassenbibliothek DAL
. Die DAL
-Bibliothek kann von einem anderen Code außerhalb der Anwendung verwendet werden, um sie vom Webprojekt zu entkoppeln.
Wie auch immer, bei der Veröffentlichung des MVC3-Projekts scheint der Prozess das Kopieren der Assembly " EntityFramework.SqlServer
" in das Verzeichnis "publish / bin" fehlzuschlagen. Allerdings veröffentlicht die Basis EntityFramework
dll zusammen mit anderen Bibliotheken und der Klassenbibliothek selbst.
Gibt es eine Möglichkeit, den Publisher dazu zu bringen, den erforderlichen SqlServer-Treiber ebenfalls zu veröffentlichen?
Nun, nach einigem zusätzlichen Google-Fu scheint es, dass ein Workaround darin besteht, einen Verweis auf diese fehlende Assembly zu erstellen, auch wenn der Code nicht verwendet wird.
.NET MVC 3-Bereitstellungspaket enthält keine Referenzen
Und die von mir verwendete Problemumgehung ist das Hinzufügen einer einfachen Testzeile im Konstruktor des Datenkontextes:
%Vor%Ich hatte die gleiche Situation. Ich habe EF über NuGet in meinem Webprojekt installiert (ich benutze es immer noch nicht dort, sondern referenziere nur auf Bibliotheken) und es löst mein Problem.
Außerdem kann ich diese Situation nicht für andere Lösungen reproduzieren - ich habe ein neues Webprojekt erstellt und auf eine neue lib verwiesen - aber die Bereitstellung funktioniert.
Fügen Sie das Entity-Framework-Paket in Ihre Paketdatei Ihres Projekts ein
Tags und Links asp.net-mvc asp.net-mvc-3 entity-framework visual-studio-2012 ef-code-first