Страница: 1 | 2 |
Ситуация: в VB6 если подключаешь внешнюю библиотеку (References), то после компиляции получаешь exe-шник, который использует указанные установленные в системе библиотеки, в VB.NET по умолчанию при создании exe-шника он туда же в папку накидает и все использованные "нестандартные" dll-ки и при запуске будет использовать именно их а не те, которые уже установлены. Вопрос, как задать, чтобы программа использовала не локальные копии библиотек (которые надо "таскать" вместе с самим файлом программы), а те же самые библиотеки которые уже установлены в системе? Пробовал для добавленных библиотек менять свойство "Copy Local" на False - при компиляции dll-ки в папку к программе не копируются, но и запускаться без них не желает. Что делать то?
Нет в GAC ничего не засовывал. А можно ли с помощью GAC (или другим способом) получить на VB.NET тот же результат, что и для VB6, т.е. чтобы при работе программы использовались только библиотеки уже установленные в системе? (Ситуация: необходимые библиотеки установлены другой программой и хотелось бы просто их использовать без того чтобы проводить для них какие то дополнительные настройки на компьютере пользователя.) Не совсем понял: для VB6 все и так работает, какое соответствие требует VB.NET? Ладно, на своем компьютере я могу и локальные версии использовать или с ГАКом поработать, а как быть с готовой программой на компьютере пользователя(?!): нужные ddl-ки там уже установлены и зарегистрированы - получается просто использовать их программой на VB.NET (без дополнительных манипуляций) как это можно делать на VB6 я не смогу, так? Жаль, похоже от идеи перехода на VB.NET придется отказаться. В том то и проблема, что на компьтерах пользователя в настоящее время нужные мне dll-ки лежат вне GAC, а запихивать их туда самостоятельно или таскать их второй комплект вместе с программой на данный момент мне не с руки. В общем - жаль, приобщение к новой технологии откладывается до лучших времен. >А что мешает в GAC поместить или скопировать в папку с твоей прогой? т.е. программа будет тащить за собой "личную" копию GAC и при установке "запихивать" в него все необходимые ей библиотеки - интересное решение. Сразу возникает несколько вопросов (вполне возможно что примитивных): 1) А GAC входит в число компонентов, которые дозволительно включать в дистрибутив собственной программы? 2) Если в GAC "запихиваются" необходимые библиотеки не возникнет ли для остальных программ которые с ними работали до этого каких-либо проблем? 3) GAC одинаково работает на всех операционках, на которых без проблем работает VB6? В общем вопросы больше теоретические, т.к. если этот метод не является "обкатанным", то проверять его работоспособность на собственной программе я не стану. Ну в общем понятно, это примерно тоже самое, что при инсталяции найти на компьютере пользователя нужные файлы и откопировать их в папку к собственной программе. Идея конечно понятная, но несколько странная - а на фига тогда вообще регистрировать dll-ки в системе если их теперь так хитро использовать приходится?! Неужели теперь при использовании сторонних библиотек теперь всем придется идти на разные ухищрения? Да нет, не ActiveX, а обычные библиотеки котрые регистрируются через regsvr32.
Вопрос: Использовании подключенных библиотек в VB.NET и...
Добавлено: 04.11.03 17:33
Автор вопроса: xTractor
Ответы
Всего ответов: 17
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 04.11.03 17:37
Твои библиотеки находятся в GAC?
Номер ответа: 2
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #2
Добавлено: 04.11.03 18:09
Номер ответа: 3
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #3
Добавлено: 04.11.03 19:19
нужно соотвествие версий длл
Номер ответа: 4
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #4
Добавлено: 05.11.03 09:54
Номер ответа: 5
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #5
Добавлено: 05.11.03 12:01
если работаешь с гаком, то в нем должна быть та версия длл, на которую
ссылался твой проэкт во время компиляции. В гаке может сидеть несколько
одних и тех же длл, но разных версий, поэтому если не хотите иметь минингита
держите длл при ехе-шнике ставя копилокал в тру, ну а если хотите
использовать уже имеющуюся то через гак..
Номер ответа: 6
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #6
Добавлено: 05.11.03 12:10
Номер ответа: 7
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #7
Добавлено: 05.11.03 12:45
Ты можешь юзать эти dll, если они лежат в GAC и той же версии, что и
те библиотеки, которые ты указывал при компиляции.
Посмотри, как используются библиотеки .NET Framework: ведь их не надо
таскать с exe. Просто они лежат в GAC и можно их юзать..
Номер ответа: 8
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #8
Добавлено: 05.11.03 13:42
Номер ответа: 9
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #9
Добавлено: 05.11.03 16:00
А что мешает в GAC поместить или скопировать в папку с твоей прогой?
Номер ответа: 10
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #10
Добавлено: 05.11.03 17:09
Номер ответа: 11
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #11
Добавлено: 05.11.03 17:37
GAC - Global Assembly Cashe, то есть глобальный набор сборок. Это
такая хреновина, куда можно скидывать сборки, которые потом смогут
использовать любые .NET приложения.
Номер ответа: 12
Автор ответа:
Артём Л.
ICQ: 280044491
Вопросов: 43
Ответов: 227
Профиль | | #12
Добавлено: 05.11.03 17:43
> 1) А GAC входит в число компонентов, которые дозволительно включать в
дистрибутив собственной программы?
гак - это не компонент, это простая папка, в которой хранятся все
зарегестрированные компоненты фрэймворка такие как форма, кнопка...., туда
же можна запихивать и свои компоненты, для этого можна воспользоваться
gacutil
> 2) Если в GAC "запихиваются" необходимые библиотеки не возникнет ли для
остальных программ которые с ними работали до этого каких-либо проблем?
нет
>3) GAC одинаково работает на всех операционках, на которых без проблем
работает VB6?
по-моему с гаком может работать только фрэймворк
Номер ответа: 13
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #13
Добавлено: 05.11.03 18:00
Номер ответа: 14
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #14
Добавлено: 06.11.03 07:21
А про какие Вы dll говорите, товарищ? Ведь .NET dll не нужно и
невозможно зарегистрировать в системе... Собственно, в .NET это
специально сделали, предполагая, что каждый будет свои dll таскать
вместе с exe, и тем самым пытались избежать т.н. "DLL Hell". А Вы
говорите что-то про регистрацию... Или Вы про ActiveX?
Номер ответа: 15
Автор ответа:
xTractor
Вопросов: 3
Ответов: 11
Профиль | | #15
Добавлено: 06.11.03 10:13