2008-11-07 2 views
1

Предполагая, что каталог приложения можно записать и что пространство HD не является проблемой, существуют ли какие-либо недостатки для размещения файлов зависимостей VB6 (msvbvm60.dll и т. Д.) В каталоге .EXE?Есть ли недостатки, связанные с вложением VB6-зависимых файлов в каталог приложений?

У меня есть самые последние файлы зависимостей, и я предполагаю, что MS не выходит с новыми версиями, поэтому я считаю, что это безопаснее (с точки зрения DLL Hell и т. Д.), Чтобы просто сохранить эти файлы в моем каталоге приложений, где они не будут изменены, и (IFAIK), они будут первыми, которые используются приложением (перед использованием их в каталоге System32 и т. д.

ответ

1

Это должно быть хорошо, ve должен был сделать это в прошлом для сторонней DLL, которую я использовал в проекте VB6 много лет назад (мы полагались на причудливую реализацию компонента, чтобы что-то сделать, а позже «фиксированная» версия была установлена ​​с популярным программным комплексом) Хотя, если его COM-версия библиотеки regsvr32 может испортить ваш план, чтобы избежать аддона DLL.

2

По моему опыту, файлы, такие как msvbvm60.dll, различные OCX, имеют тонкие зависимости, которые играют хаос при попытке установить в каталоге вашего собственного приложения. Наше решение состояло в том, чтобы отслеживать все зависимости и убедиться, что они были частью установки и правильно обработаны в соответствии с правилами Microsoft.

За 8 лет с тех пор, как MS перестала разрабатывать VB6, мы немного пережили путь DLL Hell. (около полудюжины инцидентов в более чем 500 объектах), и это было результатом того, что клиент перебрался с Windows XP, прежде чем мы туда добрались.

Одним словом, любой пользовательский или сторонний материал помещается в каталог приложения. Остальное гарантирует, что все включено, пусть оно будет установлено в системную папку в соответствии с предложениями MS.

2

Более подробное обсуждение in this question: обсуждает различные методы, чтобы заставить VB6 загружать зависимые файлы из другого места, например .local files, reg-free COM и DirectCOM.

0

На самом деле нет смысла. Просто используйте качественный установщик на базе MSI, который обладает самовосстановлением. Таким образом, каждый раз, когда ваше приложение запускает его, он будет проверять и, при необходимости, устанавливать и регистрировать любые необходимые DLL или другие компоненты. Затем вы защищаетесь от всех, кто обманывает файлы.