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