Обнаружена ошибка привязки 'Microsoft.Practices.EnterpriseLibrary.Validation' - PullRequest
6 голосов
/ 14 июля 2011

здание этого проекта работает на компьютере моего друга, но не на моем.

на этой обратной линии:

protected static Database Connection2
{
    get
    {
        try
        {
            return DatabaseFactory.CreateDatabase("HermesDB");
        }
        catch (Exception e)
        {
            //Corpnet.Elmah.Error.Add(e);
            return null;
        }
    }
}

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

сборка с отображаемым именем Не удалось загрузить файл Microsoft.Practices.EnterpriseLibrary.Validation в контекст привязки «Load» AppDomain с идентификатором 1. Причина ошибка: System.IO.FileNotFoundException: не удалось загрузить файл или сборка "Microsoft.Practices.EnterpriseLibrary.Validation" или одна его зависимостей. Система не может найти указанный файл. файл имя: 'Microsoft.Practices.EnterpriseLibrary.Validation'

=== Информация о состоянии предварительной привязки === LOG: Пользователь = MLABS \ agordon LOG: DisplayName = Microsoft.Practices.EnterpriseLibrary.Validation (Частично) LOG: Appbase = file: /// C: / Documents and Settings / agordon / My Документы / Проекты / BulkUploadToLOMDatabase / BulkUploadToLOMDatabase / bin / Debug / LOG: Initial PrivatePath = NULL Вызывающая сборка: Microsoft.Practices.EnterpriseLibrary.Common, версия = 5.0.414.0, Культура = нейтральная, PublicKeyToken = ноль. === LOG: эта привязка начинается в контексте загрузки по умолчанию. LOG: Использование файла конфигурации приложения: C: \ Documents and Settings \ agordon \ My Documents \ Projects \ BulkUploadToLOMDatabase \ BulkUploadToLOMDatabase \ Bin \ Debug \ BulkUploadToLOMDatabase.vshost.exe.config LOG: использование файла конфигурации машины из C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Config \ machine.config. LOG: политика не применяется к ссылке в настоящее время (частный, пользовательская, частичная или привязка сборки на основе местоположения). LOG: Попытка загрузка нового файла URL: /// C: / Documents and Settings / agordon / My Документы / Проекты / BulkUploadToLOMDatabase / BulkUploadToLOMDatabase / bin / Debug / Microsoft.Practices.EnterpriseLibrary.Validation.DLL. LOG: Попытка загрузки нового файла URL: /// C: / Documents and Настройки / agordon / My Документы / Проекты / BulkUploadToLOMDatabase / BulkUploadToLOMDatabase / bin / Debug / Microsoft.Practices.EnterpriseLibrary.Validation / Microsoft.Practices.EnterpriseLibrary.Validation.DLL. LOG: Попытка загрузки нового файла URL: /// C: / Documents and Настройки / agordon / My Документы / Проекты / BulkUploadToLOMDatabase / BulkUploadToLOMDatabase / bin / Debug / Microsoft.Practices.EnterpriseLibrary.Validation.EXE. LOG: Попытка загрузки нового файла URL: /// C: / Documents and Настройки / agordon / My Документы / Проекты / BulkUploadToLOMDatabase / BulkUploadToLOMDatabase / bin / Debug / Microsoft.Practices.EnterpriseLibrary.Validation / Microsoft.Practices.EnterpriseLibrary.Validation.EXE.

вот все ссылки, которые у меня есть:

enter image description here

Я загрузил последнюю корпоративную библиотеку и установил ее, и я заменил все библиотеки DLL на приведенном выше рисунке всеми обновленными версиями.

что я делаю не так?

Ответы [ 5 ]

11 голосов
/ 31 октября 2013

Хорошо, я нашел решение.Я никогда не мог принять отключение исключений в качестве ответа.Просто кажется, что-то не так ...

То, что, похоже, происходит, заключается в том, что в предыдущих сборках или в предыдущих версиях вашей текущей сборки определенные ссылки использовались извне.Даже несмотря на то, что ваш код уже давно отказался от этих ссылок, имена все еще, где-то загадочные, ищут в сборке.

Перейдите к файлам AssemblyInfo.cs и найдите ThemeInfo:

[assembly: ThemeInfo(
ResourceDictionaryLocation.ExternalAssembly, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page, 
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page, 
// app, or any theme specific resource dictionaries))]

Измените первое местоположение на «Нет»:

[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page, 
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page, 
// app, or any theme specific resource dictionaries))]

И оставьте исключения включенными!Я буду публиковать этот ответ на различные вопросы подобного характера.

8 голосов
/ 14 июля 2011

Это не фатальная ошибка; это управляемый помощник по отладке, предупреждающий вас о потенциальной проблеме.
Перейдите в раздел «Отладка, исключения» и снимите флажок.

Вы также можете просто нажать F5 , чтобы продолжить выполнение.

2 голосов
/ 22 января 2019

У меня была похожая проблема с одной из сборок в моем проекте. в моем случае это было вызвано отсутствием сборки (dll) в папке bin / debug. Это было решено путем установки ссылочной сборки в родительском проекте с помощью NuGet, который создавал dll в папке bin / debug проекта после перестройки. Вы также можете попробовать скопировать и вставить dll в папку bin / debug вашего решения из исходного расположения dll.

Вот шаг, который я предпринял для устранения проблемы.

  • В документации MSDN содержатся некоторые предложения по загрузке журнала Fusion, чтобы увидеть, какие привязки сборки активны. ссылка на документы MSDN, которые я использовал ошибка привязки журнал слияния

(Вы должны запустить программу просмотра журнала Fusion от имени администратора, которая позволяет вам изменять настройки. в программе просмотра журнала Fusion для отображения привязок сборки. В Интернете достаточно ресурсов о том, как работать со средством просмотра Fusion)

  • Определите местонахождение ссылочной библиотеки DLL и проверьте, есть ли она там.
  • Скопируйте и вставьте dll в нужное место.
  • решение по перестройке

    Ошибка обработки C #

1 голос
/ 10 марта 2017

Исправление сбоя привязки: в Visual Studio 2015 -> вкладка «Отладка» -> «Windows» -> «Настройка исключений» -> «Выводить панель настройки» справа внизу -> «Помощники по управляемой отладке» -> отменить проверку BindingFailure

1 голос
/ 14 августа 2014

Очистка /bin папка помогла мне решить эту проблему

...