Проблема при попытке настроить корпоративную библиотеку 5.0 (блок доступа к данным) - PullRequest
13 голосов
/ 17 мая 2010

У меня возникают проблемы при попытке запустить DAAB из Enterprise library 5.0. Я выполнил шаги, описанные в руководстве, но получаю ошибки ...

1) Скачать / установить корпоративную библиотеку

2) Добавить ссылки на нужные мне блоки (общие / данные)

3) Импорт

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

4) С помощью программного обеспечения конфигурации библиотеки предприятия. Я открываю web.config с моего сайта. Затем я нажимаю «Блоки», затем «Добавить настройки данных» ... введите свои данные и сохраните / закройте

5) Затем я (думая, что установка завершена) пытаюсь получить экземпляр базы данных через

 Dim db As Database = DatabaseFactory.CreateDatabase() 

6) Я компилирую и получаю следующую ошибку:

Не удалось загрузить файл или сборку 'Microsoft.Practices.EnterpriseLibrary.Data, версия = 5.0.414.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' или одна из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) (C: \ site \ web.config строка 4)

Строка 4 от моего web.config была сгенерирована утилитой конфигурации:

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

Я пропустил обязательный шаг? Я сделал шаги в неправильном порядке? Я сделал ошибку?

Большое спасибо за помощь.

Ответы [ 6 ]

20 голосов
/ 18 мая 2010

Ответ:

Я случайно ссылался на сборки из папки кода src. Это означает, что публичные токены будут иметь значение = ноль. Я снова сослался на сборки в C: \ Program Files \ Microsoft Enterprise Library 5.0 \ Bin, и теперь проблема решена.

4 голосов
/ 08 февраля 2011

Я уже видел, что вы получили ответ; однако я хотел бы отметить, что когда вы открываете инструмент Config из VS, у вас есть возможность сообщить инструменту config, на какие сборки вы хотите сослаться:

  1. В VS2010: откройте окно редактора свойств и выберите в обозревателе решений файл решения.
  2. Вы увидите параметр «Набор сборок Enterprise Library 5» с вариантами использования подписанных версий (Microsoft Signed) или неподписанных (EntLibV5Src)

Когда вы запускаете инструмент конфигурации; он будет ссылаться на сборки в файле конфигурации в соответствии с вашим выбором.

3 голосов
/ 19 мая 2011

В дополнение к тому, что ответил @Nicolas, вы можете решить эту проблему, удалив публичный токен в app.config, где бы он ни использовался с Enterprise Library 5.0 dll

2 голосов
/ 06 апреля 2011

Корпоративная библиотека имеет 2 загрузки ...

  • Корпоративная библиотека 5.0 - Исходный код.msi
  • Корпоративная библиотека 5.0.msi

Только второй имеет подписанные двоичные файлы ... что необходимо для устранения ошибки «определение манифеста не соответствует ссылке на сборку»

(и к вашему сведению, второй также включает исходный код, если вы решите его установить)

1 голос
/ 26 мая 2011

1001 * генерировать *

<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" />      
1 голос
/ 17 мая 2010

Что, вероятно, вам нужно сделать, это изменить целевую платформу в свойстве проекта с ".NET Framework 4 Client Profile" на ".NET Framework 4".

При первом создании консольного проекта VS 2010 по умолчанию создает .NET Framework 4 Client Profile. EL 5 скомпилирован с ".NET Framework 4", и вашему проекту трудно разрешить EL dll.

...