|
8.3.14 (Не обнаружена библиотека core_rl_magick_.dll) | ☑ | ||
---|---|---|---|---|
0
elCust
25.02.19
✎
11:09
|
Привет всем.
Тестируем 8.3.14.1565. Нормально работает до момента задействования COM-соединения. При COM-соединении вываливается алерт операционки "Запуск программы невозможен, так как на компьютере отсутствует CORE_RL_magic_.dll". При этом соединение устанавливается и дальше работает нормально. В каталоге bin есть этот dll, но он не регистрируется. В общем ХЗ. Что делать? Кто сталкивался на 8.3.14? |
|||
1
ДенисЧ
25.02.19
✎
11:18
|
А что разработчик данной библиотеки говорит?
|
|||
2
Владимир Милькин
25.02.19
✎
11:23
|
(0) Перед установкой COM-соединения попробуйте сделать текущей папку bin с нужной платформой 1с (там где и лежат нужные dll). Я именно так (правда подключаюсь не из 1с, а из c#) выкрутился в обновляторе.
|
|||
3
ДенисЧ
25.02.19
✎
11:25
|
(2) Какая текущая папка для ком-соединения?
|
|||
4
Владимир Милькин
25.02.19
✎
11:26
|
(3) Текущая папка для процесса, который инициирует соединение.
|
|||
5
ДенисЧ
25.02.19
✎
11:28
|
(4) Ком работает в своём пространстве. Никак не связанном с родителем.
|
|||
6
Владимир Милькин
25.02.19
✎
11:32
|
(5) В том то и дело, что в данном случае при инициализации COM используется рабочая папка родителя (процесса инициировавшего соединение) и она отличается от папки bin, в которой лежат все эти новые библиотеки и поэтому платформа их не находит.
В моём случае проблема полностью решилась, когда я перед установкой соединения начал использовать в качестве рабочей папки папку платформы, но у меня дело было в .net. |
|||
7
Владимир Милькин
25.02.19
✎
11:45
|
Глянул сейчас ещё раз код - я же там специальным образом загружаю COM-библиотеку прямо в адресное пространство обновлятора, поэтому мне и помог описанный мною приём. Можно ли то же самое сделать из 1с - не уверен. Но дело здесь именно в том, что в момент загрузки COM (он ведь может загружаться по разному в зависимости от настройки) папка BIN не является текущей (рабочей) для процесса. Раньше это было не критично, а вот эти новые dll в платформе грузятся как-то по особому, ориентируясь на текущую папку. Надеюсь это как-то поможет найти решение.
|
|||
8
ДенисЧ
25.02.19
✎
11:46
|
(6) У тебя ком какой-то странный
|
|||
9
Владимир Милькин
25.02.19
✎
11:51
|
Я, конечно, ни разу не эксперт по COM, но давайте даже ориентироваться на вот эту статью: http://catalog.mista.ru/public/387577/
Раздел "Подключение внешнего соединения": Внутрипроцессное (inproc) COM-объект создается в памяти COM-клиента Я так понимаю, что в (0) речь идёт именно по внутрипроцессном соединении, а значит COM-библиотека также (как и у меня) грузится в адресное пространство клиента, а значит установка текущей (рабочей) папки для процесса клиента может иметь значение для поиска указанных библиотек. |
|||
10
dmpl
25.02.19
✎
12:15
|
А что, добавление папки в PATH не помогает?
|
|||
11
elCust
25.02.19
✎
13:08
|
(10) +1. Работает.
|
|||
12
elCust
25.02.19
✎
13:10
|
(10) Теперь, что каждый раз для новой платформы прописывать PATH?
|
|||
13
elCust
25.02.19
✎
13:10
|
(12) Все понял. Это связано с тем, что по COM мы ходим из 8.2, а там переменные среды другие.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |