Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Assembly Hell ? / 15 сообщений из 15, страница 1 из 1
24.06.2018, 23:58
    #39664948
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Это не вопрос, поскольку причина мне ясна.
Но не понимаю, почему это возможно в принципе?

Была жила программа - .net4 + несколько библиотечных ассембликов (в зависимостях прописаны). Я ее обновил, в т.ч библиотеки были перекомпилированы без изменений (и исходников и, кажется, компилятора с точностью до сервис пака).

Но при обновлении, один из ассембликов (.dll) забыли скопировать и обновить.

Итого, программа запускается, но вылетает. В журнале виндовс - что то типа IOError - file not found, но в стектрейсе который в этом же сообщении, вызов идет из необновленного ассемблика. Т.е он загрузился, но работать по нормальному отказался.

Что еще за ещтвоюмедь ??

ИМХО, если ассемблик по версии не годится - ругнулось бы при его загрузке/линковке. А если годится - то должно было отработать без проблем. Это DLLhell в реинкарнации ?

Копии до/после обновления я снял, если не забыл до обновы - возможно, получится воспроизвести.
...
Рейтинг: 0 / 0
25.06.2018, 00:30
    #39664958
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Siemargl,

Это недостаток знаний, а не путанница.

Легко исправить, читайте: https://docs.microsoft.com/ru-ru/dotnet/framework/app-domains/create-and-use-strong-named-assemblies
...
Рейтинг: 0 / 0
25.06.2018, 00:43
    #39664964
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
hVostt,

читал эту хрень уже давно, какие противоречия ты видишь ?
...
Рейтинг: 0 / 0
25.06.2018, 00:59
    #39664968
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
SiemarglhVostt,

читал эту хрень уже давно, какие противоречия ты видишь ?

Противоречия в ожиданиях.
...
Рейтинг: 0 / 0
25.06.2018, 01:03
    #39664969
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Siemargl,

Если нужно, чтобы программа работала только с конкретными сборками конкретных версий, нужно это обеспечивать.

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

Ещё сюда же напрашивается вопрос деплоя. Как это «забыли длл обновить»? Руками что ли всё делается? Ну.. это не хорошо, сетовать на некий «hell» очень неправильно, если не обеспечиваешь адкеватные и автоматизированные механизмы сборки и деплоя.
...
Рейтинг: 0 / 0
25.06.2018, 01:13
    #39664976
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
hVostt,

конечно, в данном случаем обновление было руками - иначе эта проблема бы не всплыла.

но непредсказуемое поведение то почему ?
особенно при том, что функционал ассемблика не менялся
...
Рейтинг: 0 / 0
25.06.2018, 01:17
    #39664978
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Siemargl,

В журнале виндовс - что то типа IOError - file not found

я, к огромному сожалению, не телепат. что конкретно послужило причиной вашей ошибки, я не знаю. учитывая, что вместо текста ошибки вы выложили «что-то типа».
...
Рейтинг: 0 / 0
25.06.2018, 01:22
    #39664982
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
hVosttSiemargl,

В журнале виндовс - что то типа IOError - file not found

я, к огромному сожалению, не телепат. что конкретно послужило причиной вашей ошибки, я не знаю. учитывая, что вместо текста ошибки вы выложили «что-то типа».Это неважно, ведь подмена пересобранной версией ассемблика без изменений ликвидирует проблему
...
Рейтинг: 0 / 0
25.06.2018, 01:25
    #39664983
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
SiemarglЭто неважно, ведь подмена пересобранной версией ассемблика без изменений ликвидирует проблему

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

поэтому причину именно вашей ошибки мне трудно определить. возможно, что изменения всё же были.
...
Рейтинг: 0 / 0
25.06.2018, 08:15
    #39665024
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Siemargl,

Отчет fuslogw покажет, как всё было на самом деле. Пока что описанная картина - как в том анекдоте про "Рабинович по телефону напел".
Ну, и да, хотя бы post-build events+xcopy используйте, что ли.
...
Рейтинг: 0 / 0
25.06.2018, 17:00
    #39665467
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Сон Веры Павловны,

Сейчас гонял на тестовой чистой машине и fuslogw не помог - по его данным, кроме .resources (которых и правда нет) - все загрузилось замечательнейшим образом.

В журнале событий такое (причем на win7 и win8 разные сообщения)
Win8Сведения об исключении: System.BadImageFormatException
в моясофтинка.DataAccessLayer.CreateDatabaseObject(System.String)
в моясофтинка.DataAccessLayer..ctor(System.String)
в моясофтинка.MainWindow.MainWindow_Loaded(System.Object, System.Windows.RoutedEventArgs)

и доп.событие
Контейнер ошибки , тип 0
Имя события: CLR20r3
Отклик: Нет данных
Идентификатор CAB: 0

Сигнатура проблемы:
P1: моясофтинка.exe
P2: 1.0.0.0
P3: 595371f1
P4: моясофтинка
P5: 1.0.0.0
P6: 595371f1
P7: 81
P8: e
P9: System.BadImageFormatException
P10:


Win7Stack:
at EntLibContrib.Data.OdpNet.OracleDatabase..ctor(System.String)
at моясофтинка.DataAccessLayer.CreateDatabaseObject(System.String)
at моясофтинка.DataAccessLayer..ctor(System.String)

и доп.событие
Контейнер ошибки , тип 0
Имя события: CLR20r3
Ответ: Нет данных
Идентификатор CAB: 0

Сигнатура проблемы:
P1: моясофтинка.exe
P2: 1.0.6388.21840
P3: 595371f1
P4: Oracle.DataAccess
P5: 4.112.3.0
P6: 5040bb7d
P7: 767
P8: cd
P9: Oracle.DataAccess.Client.Oracle
P10:

Oracle.DataAccess.dll (про который Win8 вообще промолчала) - каким то особым образом, невидимым для fuslogw (скорее всего это уже неуправляемый код), пытается подгрузить клиентские dll и падает при их отсутствии (причем мне этот Иксепшн не долетает).

В общем, какое то чудо - потому что на проблемной машине, где все и началось, и клиент нужный был, и версии ассембликов одинаковые (я побайтно сравнил). Единственный вариант - побился файлик самого ассемблика.
...
Рейтинг: 0 / 0
26.06.2018, 06:40
    #39665677
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
SiemarglBadImageFormatException
Эта ошибка - ошибка несоответствия разрядности загружаемой сборки или нативной бибилиотеки разрядности самого приложения. Учитывая, что соглано отчету fuslogw, все сборки загрузились нормально, и тот факт, что приложение работает с ораклом, предполагаю, что вызов рвался на попытке загрузки нативных компонентов ораклового клиента (oci.dll) - к этомум моменту сами дотнетовские сборки действительно могли загрузиться вполне нормально, и уже на рантайме, а не в процессе загрузки сборок, выкинуть BadImageFormatException. Проверяйте, какой разрядности у вас сам клиент, и какой разрядности сборки, использующие ODP.
...
Рейтинг: 0 / 0
28.06.2018, 11:26
    #39667031
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
SiemarglhVostt,

читал эту хрень уже давно, какие противоречия ты видишь ?

Чётко написал: документация от майкрософта - это беспробудная хрень, её даже читать не стоит.
Полезнее руками "ассемблики" тасовать
...
Рейтинг: 0 / 0
28.06.2018, 12:39
    #39667082
Siemargl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
Ролг ХупинSiemarglhVostt,

читал эту хрень уже давно, какие противоречия ты видишь ?

Чётко написал: документация от майкрософта - это беспробудная хрень, её даже читать не стоит.
Полезнее руками "ассемблики" тасовать ну понято, учебники надо читать, но проблема была не в версиях.
...
Рейтинг: 0 / 0
28.06.2018, 14:50
    #39667196
Ролг Хупин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Assembly Hell ?
SiemarglРолг Хупинпропущено...


Чётко написал: документация от майкрософта - это беспробудная хрень, её даже читать не стоит.
Полезнее руками "ассемблики" тасовать ну понято, учебники надо читать, но проблема была не в версиях.

учебники и документация - это разные вещи
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Assembly Hell ? / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]