Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 |

 

  Вопрос: Использовании подключенных библиотек в VB.NET и... Добавлено: 04.11.03 17:33  

Автор вопроса:  xTractor

Ситуация: в VB6 если подключаешь внешнюю библиотеку (References), то после компиляции получаешь exe-шник, который использует указанные установленные в системе библиотеки, в VB.NET по умолчанию при создании exe-шника он туда же в папку накидает и все использованные "нестандартные" dll-ки и при запуске будет использовать именно их а не те, которые уже установлены.

Вопрос, как задать, чтобы программа использовала не локальные копии библиотек (которые надо "таскать" вместе с самим файлом программы), а те же самые библиотеки которые уже установлены в системе?

Пробовал для добавленных библиотек менять свойство "Copy Local" на False - при компиляции dll-ки в папку к программе не копируются, но и запускаться без них не желает. Что делать то?

Ответить

  Ответы Всего ответов: 17  

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 04.11.03 17:37
Твои библиотеки находятся в GAC?

Ответить

Номер ответа: 2
Автор ответа:
 xTractor



Вопросов: 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
Автор ответа:
 xTractor



Вопросов: 3
Ответов: 11
 Профиль | | #4 Добавлено: 05.11.03 09:54

Не совсем понял: для VB6 все и так работает, какое соответствие требует VB.NET?

Ответить

Номер ответа: 5
Автор ответа:
  Артём Л.



ICQ: 280044491 

Вопросов: 43
Ответов: 227
 Профиль | | #5 Добавлено: 05.11.03 12:01
если работаешь с гаком, то в нем должна быть та версия длл, на которую
ссылался твой проэкт во время компиляции. В гаке может сидеть несколько
одних и тех же длл, но разных версий, поэтому если не хотите иметь минингита
держите длл при ехе-шнике ставя копилокал в тру, ну а если хотите
использовать уже имеющуюся то через гак..

Ответить

Номер ответа: 6
Автор ответа:
 xTractor



Вопросов: 3
Ответов: 11
 Профиль | | #6 Добавлено: 05.11.03 12:10

Ладно, на своем компьютере я могу и локальные версии использовать или с ГАКом поработать, а как быть с готовой программой на компьютере пользователя(?!): нужные ddl-ки там уже установлены и зарегистрированы - получается просто использовать их программой на VB.NET (без дополнительных манипуляций) как это можно делать на VB6 я не смогу, так?

Жаль, похоже от идеи перехода на VB.NET придется отказаться.

Ответить

Номер ответа: 7
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #7
Добавлено: 05.11.03 12:45
Ты можешь юзать эти dll, если они лежат в GAC и той же версии, что и
те библиотеки, которые ты указывал при компиляции.
Посмотри, как используются библиотеки .NET Framework: ведь их не надо
таскать с exe. Просто они лежат в GAC и можно их юзать..

Ответить

Номер ответа: 8
Автор ответа:
 xTractor



Вопросов: 3
Ответов: 11
 Профиль | | #8 Добавлено: 05.11.03 13:42

В том то и проблема, что на компьтерах пользователя в настоящее время нужные мне dll-ки лежат вне GAC, а запихивать их туда самостоятельно или таскать их второй комплект вместе с программой на данный момент мне не с руки.

В общем - жаль, приобщение к новой технологии откладывается до лучших времен.

Ответить

Номер ответа: 9
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #9
Добавлено: 05.11.03 16:00
А что мешает в GAC поместить или скопировать в папку с твоей прогой?

Ответить

Номер ответа: 10
Автор ответа:
 xTractor



Вопросов: 3
Ответов: 11
 Профиль | | #10 Добавлено: 05.11.03 17:09

>А что мешает в GAC поместить или скопировать в папку с твоей прогой?

т.е. программа будет тащить за собой "личную" копию GAC и при установке "запихивать" в него все необходимые ей библиотеки - интересное решение.

Сразу возникает несколько вопросов (вполне возможно что примитивных):

1) А GAC входит в число компонентов, которые дозволительно включать в дистрибутив собственной программы?

2) Если в GAC "запихиваются" необходимые библиотеки не возникнет ли для остальных программ которые с ними работали до этого каких-либо проблем?

3) GAC одинаково работает на всех операционках, на которых без проблем работает VB6?

В общем вопросы больше теоретические, т.к. если этот метод не является "обкатанным", то проверять его работоспособность на собственной программе я не стану.

Ответить

Номер ответа: 11
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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

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

Идея конечно понятная, но несколько странная - а на фига тогда вообще регистрировать dll-ки в системе если их теперь так хитро использовать приходится?!

Неужели теперь при использовании сторонних библиотек теперь всем придется идти на разные ухищрения?

Ответить

Номер ответа: 14
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #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

Да нет, не ActiveX, а обычные библиотеки котрые регистрируются через regsvr32.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам