13

Ich habe Probleme beim Versuch, DAAB von der Enterprise-Bibliothek 5.0 zu starten. Ich habe die Schritte gemäß der Anleitung gefolgt, aber Fehler bin immer ...Problem beim Konfigurieren der Enterprise-Bibliothek 5.0 (Datenzugriffs-Anwendungsblock)

1) Download/Enterprise Library installieren

2) Fügen Sie Verweise auf die Blöcke ich brauche (common/data)

3) Importe

Imports Microsoft.Practices.EnterpriseLibrary.Common 
Imports Microsoft.Practices.EnterpriseLibrary.Data 

4) Durch die Unternehmensbibliothek Config-Software. Ich öffne die web.config von meiner Website. Ich habe dann Blocks klicken, dann Dateneinstellungen hinzufügen ... füllen Sie meine Daten und speichern/schließen

5) Ich habe dann (Denken Setup abgeschlossen ist) versuchen, eine Instanz der Datenbank zu erhalten über

Dim db As Database = DatabaseFactory.CreateDatabase() 

6) Ich kompiliere und empfange den folgenden Fehler:

Konnte Datei oder Assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version = 5.0.414.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine seiner Abhängigkeiten nicht laden. Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040) (C: \ site \ web.config Zeile 4)

Linie 4 aus meinem web.config durch das Konfigurationstool generiert wurde und ist:

<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" /> 

Fehle ich ein erforderlicher Schritt? Habe ich die Schritte in der falschen Reihenfolge gemacht? Habe ich einen Fehler gemacht?

Vielen Dank für die Hilfe.

Antwort

20

Die Antwort:

I accidentaly die Baugruppen aus dem src-Code Ordner verwiesen hatte. Das bedeutet, dass die öffentlichen Token = null hätten. Ich re-referenzierte auf die Assemblys in C: \ Programme \ Microsoft Enterprise Library 5.0 \ Bin und das Problem ist jetzt behoben.

+0

Das funktionierte für mich, obwohl ich meine Lösung reinigen und neu aufbauen musste, bevor die Änderungen an den DLLs wirksam wurden – tjrobinson

1

Was Sie wahrscheinlich tun müssen, ist Ziel Framework in der Eigenschaft Ihres Projekts von ".NET Framework 4 Client Profile" zu ".NET Framework 4" zu ändern.

Wenn Sie zuerst ein Konsolenprojekt erstellen, erstellt VS 2010 standardmäßig "NET Framework 4 Client Profile". EL 5 kompiliert mit ".NET Framework 4" und Ihr Projekt hat Schwierigkeiten, EL dll (s) aufzulösen.

+0

Ich benutze .net Framework 3.5 mit vs2008 sp1 – Phil

4

Ich sah schon, dass Sie die Antwort bekommen haben; jedoch wollte ich darauf hinweisen, dass, wenn Sie das Config-Tool von VS öffnen, haben Sie die Möglichkeit die Config-Tool zu sagen, was Baugruppen Sie haben verwiesen werden soll:

  1. In VS2010: Öffnen Sie die Eigenschaften Editor-Fenster, und Wählen Sie im Solution Explorer die Solution-Datei.
  2. Sie verlassen nun die Option „Enterprise Library 5 Montagesatz, mit den Optionen finden Sie in den signierten Versionen (Microsoft Signed) oder ohne Vorzeichen (EntLibV5Src)

Wenn Sie das Konfigurationstool Feuer zu verwenden, es wird referenziere die Assemblies in der Konfigurationsdatei entsprechend deiner Wahl.

+1

Das funktionierte für mich. Ein zusätzlicher Punkt: Wenn Ihre Konfigurationsdatei bereits einige EntLib-spezifische Dinge enthielt, die als signiert referenziert wurden und Sie ungesungene Versionen von EntLib-Bibliotheken verwenden wollen, müssen Sie 'PublicKeyToken =' manuell aus Ihrer Konfigurationsdatei entfernen, wo immer sie verwendet wird EntLib-Kontext Sonst wird der ConfigEditor nicht geöffnet und Sie erhalten die selbe Exception. –

2

Enterprise-Bibliothek verfügt über 2 downloads ...

  • Enterprise Library 5.0 - Quelle Code.msi
  • Enterprise Library 5.0.msi

Nur der zweite die signierten Binärdateien hat .. was ist notwendig, um die "manifest Definition entspricht nicht die Assembly-Referenz" Fehler

(und FYI, die zweite enthält auch den Quellcode i f Sie sich dafür entscheiden, es zu installieren)

+0

Es gibt auch ein optionales Update für die Enterprise Library 5.0. Die Version 5.0.505.0 verursacht den Fehler, wenn sie anstelle von Enterprise Library 5.0 für ein vorhandenes Projekt installiert wird. – Suncat2000

3

Zusätzlich zu dem, was @Nicolas beantwortet Ihnen über dieses Problem kommen kann mit den öffentlichen Token in app.config zu entfernen, wo immer es mit Enterprise Library 5.0 dll

1

erzeugen verwendet wird

<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />      
     <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />  
Verwandte Themen