контроль версий dll подключенных к проекту

Программирование на Visual Basic for Applications
FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 13:17

Доброго времени суток!
Есть отчетная система у приложения.
Отчеты в Excel
Для работы отчета используется проект VBA Excel.
приложение создает Excel Application, грузит нужный файл .xls и вызывает метод "Построить"
для пого, чтобы построить отчет необходимы некоторые dll подключаемые в проект по референсам.
Все хорошо до тех пор, пока в какой-то длл не меняется интерфейс( хотя и не нарушается бинарная совместимость, но соответственно меняется версия TypeLibrary)
(вопрос о том, что интерфейс менять нельзя, не принимается, поскольку приложение развивается и заморозить интерфейсы пока не представляется возможным)
VBA Ecxel() хранит в файле .xls GUID путь и ВЕРСИЮ typelibrary
естественно он не находит старой версии(очевидно проверяет версию, прежде чем получить объект из Dll)
и выдает сообщение "Object Library feature not supported"
ах, да, используется Office XP....
Вопрос конечно решается тем, что перед вызовом "Построить" залезть в коллескию VBE Referenses и проверить и перецепить ссылки. Просто и наверняка.
Но, прийдется давать доверительный доступ к проекту Visual Basic, а заказчик категорически против понижения уровня безопасности
Конечно можно объявлять объектные переменные AS Object, это должно спасти, но отчетов разработано великое множество, кроме того заказчик имеет возможность сам разрабатывать отчеты и остро стает вопрос о затратах времени на переделывание всей отчетной системы.
Вобщем вопрос стоит так:
Возможно ли сказать VBA чтобы он не контролировал версию?
А хранил просто ссылку на dll
(там система разберется с совместимостью, поскольку бинарная совместимость не нарушается)
Или хотя бы посоветуйте где почитать о контроле версий ссылочных длл в VBA

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: контроль версий dll подключенных к проекту

Сообщение alibek » 04.02.2010 (Чт) 13:55

Наверное нельзя.
Я бы скорее всего перешел на позднее связывание.
Заменить код можно будет почти автоматически.
Другой способ — получить сертификат и подписать проект сертификатом. В этом случае понижать уровень безопасности не придется.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: контроль версий dll подключенных к проекту

Сообщение Денис » 04.02.2010 (Чт) 14:00

А еще можно выполнять все манипуляции, которые выполняются проектом VBA, в родительском приложении.
FFOX писал(а):приложение создает Excel Application

Что мешает работать с созданным инстансом напрямую?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 14:03

alibek писал(а):Наверное нельзя.
Другой способ — получить сертификат и подписать проект сертификатом. В этом случае понижать уровень безопасности не придется.

Спасибо.
Меня смущает то, что я не нашел нигде(может плохо искал) точного подтверждения что при установке сертификата доверительный доступ будет обеспечен автоматически.
В принципе вопрос о покупке сертификата рассматривался, но нет достаточно информации, чтобы я мог гарантировать начальству решение проблемы с уровнем безопасности.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 14:10

Денис писал(а):Что мешает работать с созданным инстансом напрямую?

То, что заказчик может сам разрабатывать отчеты согласно предоставленному 1 методу
приложение ничего не знает о отчете, кроме имени файла, который нужно загрузить и вызова метода "построить"
с передачей в метод нужных параметров
далее заказчик волен разрабатывать отчет на свое усмотрение, и чего он там наворотит я не знаю и знать не хочу

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: контроль версий dll подключенных к проекту

Сообщение Денис » 04.02.2010 (Чт) 14:27

Тогда объясните это
FFOX писал(а):для пого, чтобы построить отчет необходимы некоторые dll подключаемые в проект по референсам.

Кто подключает библиотеки?
Кто изменяет библиотеки?
Кто это "знать хочет"? :)
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 15:10

Денис писал(а):Тогда объясните это

Кто подключает библиотеки?
Кто изменяет библиотеки?
Кто это "знать хочет"? :)

Кто разрабатывает отчет, тот и "хочет знать"
наш разработчик, разработчик заказчика, сторонний разработчик, которого пригласил заказчик и.т.д.
хоть Вы :)
еще раз повторю:
Приложение ничего не знает о отчете кроме имени файла и вызова метода "построить".
Ему это не надо знать.
оно говорит Екселю вот тебе файл, вот тебе параметры - строй!
только скажи мне потом, удалось тебе построить или нет.
А какие референсы потребуются при этом решает разработчик отчета.
И кто вдруг решил изменить интерфейс в подключенной библиотеке ему по барабану.
Вот тут то и возникает проблема, что именно нам надо пройти по всем отчетам заказчика и проверить, та ли версия tlb
хранится в .xls

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 15:18

alibek писал(а):Другой способ — получить сертификат и подписать проект сертификатом. В этом случае понижать уровень безопасности не придется.

Я проверил с помощью личного сертификата
создал сертификат на своей машине, подписал им проект VBA
(в надежных издателях он появился)
и выяснил, что наличие сертификата не обеспечивает доверительного доступа к проекту.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: контроль версий dll подключенных к проекту

Сообщение Денис » 04.02.2010 (Чт) 15:21

FFOX писал(а):наш разработчик, разработчик заказчика, сторонний разработчик, которого пригласил заказчик и.т.д.
хоть Вы :)

Я путаницу за 100 вёрст чую.
Разрабатывает библиотеки сторонний разработчик? Изнмняет интерфейсы сторонний разработчик?
Почему тогда из этого
FFOX писал(а):вопрос о том, что интерфейс менять нельзя, не принимается, поскольку приложение развивается

следует, что развивается ваше приложение?
Объясните?
И почему на вас повесили ответственность за посторонние библиотеки?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 15:51

Денис писал(а):
FFOX писал(а):наш разработчик, разработчик заказчика, сторонний разработчик, которого пригласил заказчик и.т.д.
хоть Вы :)

Я путаницу за 100 вёрст чую.
Разрабатывает библиотеки сторонний разработчик? Изнмняет интерфейсы сторонний разработчик?
Почему тогда из этого
FFOX писал(а):вопрос о том, что интерфейс менять нельзя, не принимается, поскольку приложение развивается

следует, что развивается ваше приложение?
Объясните?
И почему на вас повесили ответственность за посторонние библиотеки?


первое:

НИКТО не мешает стороннему разработчику разработать свою компоненту
Никто не мешает ему ее распространять и включать эти библиотеки в отчеты
никто не мешает стороннему разработчику развивать свои компоненты
Ради бога!

второе:

наше приложение развивается тоже
ничего не стоит на месте, но, ВКЛЮЧАТЬ ИЛИ НЕ ВКЛЮЧАТЬ референс решает разработчик отчета, исходя из СВОИХ нужд и
Тех задания на разработку отчета.

третье:

отчет мог быть разработан 5 лет назад, стороннего разработчика давно нет, но он включил в отчет какую-то библиотеку 3-го
разработчика(того же майкрософта) который решил изменить интерфейс, законом это не запрещено.
кто будет отвечать за отчет стороннего разработчика? которого давно нет?
Заказчик говорит: Есть проблема - решайте, приложение - ваше.
Сделайте так, чтобы кто что не поменял, нам было хорошо. Остальное заказчика не волнует
и ответ типа "отчет не наш" его не устраивает
Вобщем наша беседа скатилась на философские темы , а меня она, философия не волнует.
Могу сказать одно - управлять экселем из под приложения никто не будет, это очень ограничивает возможности и гибкость отчетной системы
На этапе проектирования приложения было принято идеологическое решение, с моей точки зрения абсолютно верное.
У Вас может быть другое мнение, ради бога.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: контроль версий dll подключенных к проекту

Сообщение Денис » 04.02.2010 (Чт) 16:18

FFOX писал(а):

Окей, я всё понял. Тогда должен согласиться с Алибеком. Скорее всего решений нет, ибо все решения, что приходят на ум, требуют понижения уровня безопасности. А этого категорически не желает заказчик ваш.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 16:51

Денис писал(а):
FFOX писал(а):

Окей, я всё понял. Тогда должен согласиться с Алибеком. Скорее всего решений нет, ибо все решения, что приходят на ум, требуют понижения уровня безопасности. А этого категорически не желает заказчик ваш.

В том то и дело. Если бы не это параноидальное (как по мне) требование вопрос бы вообще не поднимался
тем более, что этим процессом можно управлять и, довольно просто, и решение простое как самовар...
И Вам удачи!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: контроль версий dll подключенных к проекту

Сообщение alibek » 04.02.2010 (Чт) 17:06

FFOX писал(а):Я проверил с помощью личного сертификата
создал сертификат на своей машине, подписал им проект VBA
(в надежных издателях он появился)
и выяснил, что наличие сертификата не обеспечивает доверительного доступа к проекту.

Личный — это самодельный?
Не проверял, но думаю, что если сертификат будет настоящий (удостоверяющий безопасность кода и заверенный корневым центром сертификации), ситуация может быть иной. Для того сертификаты и предназначены, чтобы дать доступ для безопасных приложений.
Lasciate ogni speranza, voi ch'entrate.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 04.02.2010 (Чт) 17:45

alibek писал(а):Личный — это самодельный?
Не проверял, но думаю, что если сертификат будет настоящий (удостоверяющий безопасность кода и заверенный корневым центром сертификации), ситуация может быть иной. Для того сертификаты и предназначены, чтобы дать доступ для безопасных приложений.

ну да, цифровой сертификат для проектов VBA.
из Средства MSOffice - Цифровой сертификат
Возможно вы и правы, я еще в ту сторону покопаю.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: контроль версий dll подключенных к проекту

Сообщение alibek » 04.02.2010 (Чт) 20:10

FFOX писал(а):ну да, цифровой сертификат для проектов VBA.
из Средства MSOffice - Цифровой сертификат

Это не полноценный сертификат, он даже не удостоверяет подписавшего и может быть применим только на том компьютере, на котором сгенерирован (его нельзя будет экспортировать в виде пары ключей).
Можно попробовать для тестов найти триальный сертификат. Некоторые центры авторизации выдают персональные сертификаты на неделю-две, попробуй найти такой. Например, какое-то время назад его можно было получить в http://www.globalsign.net.
Lasciate ogni speranza, voi ch'entrate.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 05.02.2010 (Пт) 8:19

alibek писал(а):Можно попробовать для тестов найти триальный сертификат. Некоторые центры авторизации выдают персональные сертификаты на неделю-две, попробуй найти такой. Например, какое-то время назад его можно было получить в http://www.globalsign.net.

Окей, спасибо, попробую

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 10.02.2010 (Ср) 17:05

Кстати, проблема решена.
Все оказалось совсем банально.
это глюк 2003 офиса
лечится установкой SP3(может пофиксили и раньше, я сразу 3 ставил)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: контроль версий dll подключенных к проекту

Сообщение alibek » 10.02.2010 (Ср) 17:20

FFOX писал(а):это глюк 2003 офиса

Вроде бы говорилось, что используется Office XP.
Lasciate ogni speranza, voi ch'entrate.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: контроль версий dll подключенных к проекту

Сообщение FFOX » 10.02.2010 (Ср) 17:37

alibek писал(а):
FFOX писал(а):это глюк 2003 офиса

Вроде бы говорилось, что используется Office XP.

меня ввели в заблуждение :( , а я ввел в заблуждение вас :(

тему можно закрывать.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 66

    TopList