• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как заставить работать плагин на другом компьютере?

Автор mDmitriy, 10.09.13, 18:34:19

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

mDmitriy

Всем привет!

Написал плагин к Компасу (Windows 7 x64, Kompas 14 SP1, VS 2012, NET 4.0, C#).
На своем компьютере все работает, на других почему-то нет.
Регистрировал плагин с помощью RegAsm.exe (RegSvr32 его не берет).
Плагин появляется в Комапасе в списке доступных ActiveX-библиотек, но при попытке загрузить его пишет "Некорректная структура библиотеки"

Что может быть не так?

В Delphi к такому приводит подключение модуля ShareMem, скорее всего, тоже, какой то конфликт.
http://forum.ascon.ru/index.php/topic,11307.msg74657.html#msg74657

mDmitriy

по ссылке ситуация с отключением библиотеки
а у меня она не подключается

Проверьте просто, а всё ли нужно из подключенных модулей и настроек, в C# я валенок, поэтому более детального совета дать не смогу, чем мог, тем помог.
P.S. При подключении с этим модулем, там, где я компилирую всё нормально, но на других компьютерах, неверная структура библиотеки.

Сергей Фадеев

Цитата: mDmitriy от 10.09.13, 18:34:19
Что может быть не так?

Попробуйте зарегистрировать dll-ку при помощи "RegAsm.exe /codebase <Имя_файла_библиотеки>".
Проверить наличие такой же версии Framework на конечной машине.
Собирать и передавать Release - версию. Если при компиляции библиотеки рядом создаются обертки, то они также должны быть на конечной машине. Вы их должны передать вместе с библиотекой и зарегистрировать с помощью RegAsm.

+ Благодарностей: 1

mDmitriy

Framework 4.0 установлен (Win 7)
Принципиально ли использовать Release, а не Debug?
Должен ли быть установлен на другой машине SDK?
Обертки тоже регистрировать с /codebase?

Спасибо, завтра попробую

Slaviation

Может на другую машину нужно поставить соответствующий Redistributable package для C#

mDmitriy

не слышал о таком... с++ Redistributable установлен

mDmitriy

В общем, проблему удалось победить. :o:

В связи с этим хочется сообщить следующее:
1) Все DLL, на которые ссылается плагин, были собраны с опциями AnyCPU и Debug.
2) Регистрируемая DLL была собрана с опцией x86, т.к. ссылается на SDK-библиотеки от 32-разрядного Компаса (если собирать с AnyCPU, то MSBuild выдаст предупреждение).
3) Вместе с регистрируемой сборкой выкладывается также ее TLB (обязательность этого шага не выяснена и TLB не регистрировалась).
4) Регистрируем на других компьютерах с помощью RegAsm.exe с ключом /codebase ( :um:спасибо Сергею Фадееву!). При регистрации выдается предупреждение, что сборка не подписана (так что в будущем собираюсь делать подписанные сборки), но типы все равно регистрируются.

Вот и все. После этих шагов плагины появляются в списке ActiveX библиотек Компаса и подключаются без проблем.
Проверено на 7 x64, 7 x32 (включая виртуалку) и XP SP3.

Всем спасибо! :)

Сергей Фадеев

Цитата: mDmitriy от 11.09.13, 00:36:44
Framework 4.0 установлен (Win 7)
Принципиально ли использовать Release, а не Debug?
Должен ли быть установлен на другой машине SDK?
Обертки тоже регистрировать с /codebase?

Спасибо, завтра попробую

Не принципиально, решать Вам. В Debug версию включается дополнительная информация для возможной отладки и по другому работает сборщик мусора. В Release устанавливается галочка "Оптимизация" и сборщик мусора чистит с учётом этой опции.
Есть интересные примеры http://www.gotdotnet.ru/blogs/AndreyAkinshin/13875/
SDK не нужен.
RegAsm без ключа codebase вроде не регистрирует не подписанные сборки.
+ Благодарностей: 1

mDmitriy

Возникла другая проблема: плагин виден на других компьютерах только под учетными записями с правами админа.
Под пользовательскими записями Компас не видит плагин. :`(
В чем может быть проблема?