Ошибка связывания сборки EnterpriseLibrary.Logging.Database с рабочим процессом - PullRequest
0 голосов
/ 17 марта 2011

Я получаю следующую ошибку, когда пытаюсь запустить консольную программу, которая вызывает созданную мной операцию Workflow 4. Обратите внимание, что рабочий процесс компилируется и запускается без проблем при выполнении из модульных тестов или при внедрении в другой рабочий процесс.

Не удалось загрузить файл или сборку «Microsoft.Practices.EnterpriseLibrary.Logging.Database, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей. Система не могу найти указанный файл.

Я использую EnterpriseLibrary 5.0 для регистрации и подключения строк.

Я замечаю, что путь к сборкам следующий:

C: \ Program Files (x86) \ Microsoft Библиотека предприятия 5,0 \ Bin \ Microsoft.Practices.EnterpriseLibrary. *

Просмотр журнала привязки сборки см. следующее:

* Запись в журнале переплетного устройства (17/03/2011 @ 15:32:48) *

Операция не выполнена. Результат привязки: час = 0x80070002. Система не может найти указанный файл.

Менеджер сборки загружен из: C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ clr.dll Запуск под исполняемым файлом C: \ Development \ Work \ EquinoxeAISManagementSystemWorkflow \ EquinoxeAISManagementSystemWorkflow.FeedManager \ Bin \ Debug \ EquinoxeAISManagementSystemWorkflow.FeedManager.vshost.exe --- Подробный журнал ошибок следует.

=== Информация о состоянии предварительной привязки === LOG: Пользователь = EQUINOXEAIS \ pmckee LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Logging.Database, Версия = 5.0.414.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 (Полностью указано) LOG: Appbase = Файл: /// C: /Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/ LOG: Initial PrivatePath = NULL LOG: Динамическая база = NULL LOG: база кэша = NULL LOG: AppName = EquinoxeAISManagementSystemWorkflow.FeedManager.vshost.exe Вызов сборки: EquinoxeAISManagementSystemWorkflow.ActivityLibrary, Версия = 1.0.0.0, Культура = нейтральная,

PublicKeyToken = нуль.

LOG: эта привязка начинается при загрузке по умолчанию контекст. LOG: нет приложения файл конфигурации найден. LOG: Использование файл конфигурации хоста: LOG: Использование файл конфигурации машины из C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config. LOG: Ссылка после политики: Microsoft.Practices.EnterpriseLibrary.Logging.Database, Версия = 5.0.414.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 LOG: GAC Lookup был неудачным. ЖУРНАЛ: Попытка загрузки нового URL Файл: /// C: /Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database.DLL. LOG: попытка загрузки нового URL Файл: /// C: /Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database/Microsoft.Practices.EnterpriseLibrary.Logging.Database.DLL. LOG: попытка загрузки нового URL Файл: /// C: /Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database.EXE. LOG: попытка загрузки нового URL Файл: /// C: /Development/Work/EquinoxeAISManagementSystemWorkflow/EquinoxeAISManagementSystemWorkflow.FeedManager/bin/Debug/Microsoft.Practices.EnterpriseLibrary.Logging.Database/Microsoft.Practices.EnterpriseLibrary.Logging.Database.EXE. Журнал: все пробные URL-адреса были предприняты и не удалось.

Я попытался решить эту проблему следующим образом: - Установка «Определенной версии» в «Ложь» для всех сборок EnterpriseLibrary, на которые есть ссылки - Снова создайте файл app.config с помощью инструмента конфигурации EnterpriseLibrary (и снова, и снова :( - Удаление всех ссылочных сборок и добавление их обратно по очереди.

Я был бы очень признателен, если бы у кого-нибудь был еще указатель о том, как отладить эту проблему ..... СПАСИБО!

1 Ответ

1 голос
/ 17 марта 2011

Я вижу три возможных проблемы ...

  1. Ваше приложение x64 (C:\Windows\Microsoft.NET\Framework64\), Microsoft.Practices.EnterpriseLibrary.Logging.Database x86 или x64?(никогда не пытался сделать это, поэтому я не уверен, можно ли это сделать или нет)
  2. Этот файл копируется локально при сборке?Он должен быть расположен в C:/Development/Work/[snip]/bin/Debug, чтобы загрузчик fusion мог его найти.Fusion не будет искать под каждым каталогом.
  3. Он находится в GAC, но его нет в каталоге, упомянутом в # 2.Fusion должен сначала найти сборку в каталоге установки, прежде чем он будет проверять GAC для сборки, IIRC *.

* это поведение зависит от того, как сборка загружается во время выполнения с использованием частичного связывания, т.е., не используя строгое имя сборки.

...