Проблема загрузки версии сборки и SQL CE - PullRequest
1 голос
/ 08 апреля 2011

У меня есть приложение, которое использует SQL CE 3.5 и Entity Framework из .NET 3.5.

Мы столкнулись с известной проблемой с SQL CE 3.5 SP2 RTM, которая вызывает сбой приложения.В результате мы получили накопительное обновление 2, которое, по-видимому, решает проблему.

Поскольку мы развернули SQL CE через XCopy с нашим приложением, мы предположили, что простая замена локальных управляемых и неуправляемых библиотек DLL версиями CU2 сделаетхитрость.

В случае, если SQL CE был установлен на машине раньше времени (и поэтому находится в GAC), наше приложение игнорирует более новые версии сборок и DLL и загружает старые, сломанные версииот GAC.

Мы определили, что удаление SQL CE (и, следовательно, удаление его из GAC) или обновление сборок GAC позволяет нашему приложению использовать правильную версию.

Есть ли лучшепуть?Я пробовал Assembly.LoadFile, но это не сработало.(Обе версии были загружены, но на самом деле использовалась более старая).

1 Ответ

0 голосов
/ 08 апреля 2011

Вы ориентируетесь на конкретную версию сборок SQL CE?На вкладке свойств убедитесь, что для свойства Определенная версия ссылки установлено значение True .Также убедитесь, что у вас нет перенаправления привязки сборки, которое указывает платформе .Net на использование более старых сборок.

Я могу только предположить, что Накопительное обновление 2 увеличило номер версии, и если это таксборки в GAC следует использовать только в том случае, если версия сборки точно совпадает.Если они не совпадают, то .Net Framework должен использовать сборки, найденные в каталоге вашего приложения, поскольку они точно соответствуют номеру версии.

...