13

Je rencontre des problèmes lors de l'exécution de DAAB à partir de la bibliothèque Enterprise 5.0. Je l'ai suivi les étapes que par le tutoriel, mais je reçois des erreurs ...Problème lors de la tentative de configuration de la bibliothèque d'entreprise 5.0 (Bloc d'application d'accès aux données)

1) Télécharger/installer la bibliothèque de l'entreprise

2) Ajouter des références aux blocs dont j'ai besoin (communs/données)

3) importations

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

4) À travers le logiciel de configuration de bibliothèque d'entreprise. J'ouvre le web.config de mon site. Je clique puis blocs, puis ajouter les paramètres de données ... remplir mes détails et enregistrer/fermer

5) Je puis (configuration la pensée est terminée) essayer d'obtenir une instance de la base de données via

Dim db As Database = DatabaseFactory.CreateDatabase() 

6) Je compile et reçois l'erreur suivante:

Impossible de charger le fichier ou l'assembly 'Microsoft.Practices.EnterpriseLibrary.Data, Version = 5.0.414.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35' ou l'une de ses dépendances. La définition de manifeste de l'assembly localisé ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040) (C: \ emplacement \ line web.config 4)

ligne 4 de mon web.config a été généré par l'outil de configuration et est:

<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" /> 

Suis-je manque un étape requise? Ai-je fait les étapes dans le mauvais ordre? Ai-je fait une erreur?

Merci beaucoup pour votre aide.

Répondre

20

La réponse:

j'avais accidentaly référencé les assemblages à partir du dossier de code src. Ce qui signifie que les jetons publics auraient = null. J'ai re-référencé aux assemblys dans C: \ Program Files \ Bibliothèque Microsoft Enterprise 5.0 \ Bin et le problème est maintenant résolu.

+0

Cela a fonctionné pour moi, bien que je devais nettoyer et reconstruire ma solution avant que les changements aux DLL aient pris effet – tjrobinson

1

Ce que vous devez probablement faire est de changer le framework cible dans la propriété de votre projet de ".NET Framework 4 Client Profile" à ".NET Framework 4". Lorsque vous créez un projet de console pour la première fois, VS 2010 crée par défaut "Profil de client NET Framework 4". EL 5 compilé avec ".NET Framework 4" et votre projet a du mal à résoudre les dll EL.

+0

J'utilise .net framework 3.5 avec vs2008 sp1 – Phil

4

J'ai déjà vu que vous aviez la réponse; cependant, je voulais souligner que lorsque vous ouvrez l'outil de configuration de VS, vous avez la possibilité de dire l'outil de configuration ce que vous ENSEMBLES voulez avoir référencé:

  1. Dans VS2010: ouvrir la fenêtre de l'éditeur de propriétés, et sélectionnez dans l'explorateur de solution le fichier de solution.
  2. Vous verrez l'option « Enterprise Library 5 Kit de montage, avec les options à utiliser les versions signées (Microsoft Signé) ou non signé (EntLibV5Src)

Lorsque vous lancez l'outil de configuration, il sera référencer les assemblages dans le fichier de configuration en fonction de votre choix.

+1

Cela a fonctionné pour moi. Un point supplémentaire: Si votre fichier de configuration contenait déjà des éléments spécifiques à EntLib qui étaient référencés comme signés et que vous vouliez utiliser des versions non dédiées des bibliothèques EntLib, vous devez supprimer manuellement 'PublicKeyToken =' de votre fichier de configuration partout où il est utilisé Contexte EntLib. Sinon, ConfigEditor ne s'ouvrira pas et vous obtiendrez la même suppression. –

2

bibliothèque Enterprise dispose de 2 téléchargements ...

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

Seul le second a les binaires signés .. qui est ce qui est nécessaire pour résoudre l'erreur «la définition du manifeste ne correspond pas à la référence de l'assembly»

(et FYI, le second inclut également le code source i f vous choisissez de l'installer)

+0

Il existe également une mise à jour optionnelle de la bibliothèque d'entreprise 5.0 1. Sa version est 5.0.505.0 et provoque l'erreur si elle est installée à la place d'Enterprise Library 5.0 pour un projet existant. – Suncat2000

3

En plus de ce @Nicolas a répondu que vous pouvez venir sur ce problème en supprimant jeton public dans app.config où jamais il utilisé avec Enterprise Library 5.0 dll

1

générer

<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" />  
Questions connexes