Замена DLL с той же DLL решает проблему, но почему? - PullRequest
0 голосов
/ 05 декабря 2011

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

-a.exe is our vb6 app that references x.dll
-x.dll is an in house vb6 dll that references y.dll
-y.dll is an in house .net interop dll

-Everything works fine on the development machines.
-I have more than triple checked our .net setup project to ensure files are being pulled from the correct places.

При установке произойдет сбой вызова из x.dll в y.dll.В конечном счете, как я могу это исправить, скопировав x.dll с компьютера разработчика в файл x.dll, который был установлен проектом установки на целевой машине.Эти два должны быть идентичны.

У кого-нибудь есть какие-либо подсказки, что бы это могло быть?Это, пожалуй, самая странная проблема с dll, которая у меня когда-либо была: (

1 Ответ

0 голосов
/ 27 декабря 2011

Хотя я исправил проблему, я до сих пор не до конца понимаю, почему возникла проблема, но вот что я нашел ...

Vb6 всегда хочет изменить dll, на которую ссылаются, на самую последнюю зарегистрированную,Мы привыкли регистрировать dll в каталоге приложения, расположенном в C: \, а не в папках с исходным кодом, и ссылались на них оттуда и извлекали их из этого каталога для пакета установки.

Когда мы переключились наSubversion мы переместили dll в папку зависимостей внутри ветки.Однако библиотеки dll продолжали копироваться и регистрироваться в каталоге приложений, откуда сборка получала их.Мне пришлось обновить сборку, чтобы захватить dll-файлы из нового местоположения филиала и остановить их копирование в старое местоположение.

Кажется, это решило проблему, но я не полностью знаю, почему, потому чтоСравнение DLL в обоих местах показало, что они были идентичны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...