#0
by TormozIT
Чтобы проверить актуальность версии COM-компоненты я создаю ее объект Новый COMОбъект(КлассКомпоненты) Далее проверяю нужное свойство или метод и в зависимости от успешности хочу перезаписать файл dll актуальной версией из макета. Но файл остается заблокированным, т.к. удерживается текущим процессом 1С. Как его освободить?
#6
by MrStomak
Когда делаешь ЗагрузитьВнешнююКомпоненту, в реестре в записи для этой компоненты inprocserver не обновляется на новый файл?
#11
by MrStomak
При этом старая версия всё время держится в памяти? 1С утверждает, что освобождает память, когда счетчик ссылок до 0 доходит. Но прямо не говорится, в какой момент это происходит. Мне кажется, что при окончании вызова функции/процедуры и при исчезновении контекста. Если ты присваиваешь переменной значение com в обработке, потом закрываешь её и заново открываешь - всё равно происходит удержание старого файла? Наверное, этот вопрос на партнерке надо задавать, в документации ничего нет.
#15
by Torquader
Вы создаёте COM-объект из Dll - он подключается к текущему процессу. Для выгрузки Dll все ссылки на её объекты должны отсутствовать. После этого, система вызывает функцию DllCanUnloadNow, на которую Dll должна ответить разрешением, если допускает выгрузку - вполне вероятно, что внешние компоненты 1С, так как их выгрузка не планируется, просто не разрешают себя выгружать и всегда отвечают S_FALSE. Если уж очень хочется, то можно запустить другой процесс, скажем сценарий на VbScript, в котором создать компоненту, проверить её версию и записать результат в файл - после завершения сценария Dll точно освободится.
#16
by Torquader
Ну и, по нормальному - нужно заполнять VirsionInfo, чтобы можно было проверить версию без необходимости чего-то создавать.
#17
by oleg_km
Сергей Смирнов, который популяризует дотНЕТ в 1С вроде приводил код по выгрузке модулей
#18
by Torquader
Собственно, делаешь LoadLibrary указанного файла - получаешь идентификатор HMODULE, а потом делаешь FreeLibrary пока не вызовется ошибка - но очень большая вероятность, что процесс "попросят" из памяти.
#21
by TormozIT
Файл переименовывать пробовал конечно же. Он начинает использоваться (соответствие ProgID-ИмяФайла) только после перезапуска процесса.
#26
by TormozIT
У меня COM компонента на .Net Но и с обычными COM компонентами такая же история. Процесс менеджер показывает, что все dll висят в памяти не смотря на отсутствие в памяти объектов, опирающихся на них.
#27
by Serginio1
То есть нужно создавать отдельно Домен в него загружать сборки в нем создавать объекты, а затем этот домен выгружать.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- выгрузить из ЗиКа в XML
- выгрузить dll из памяти
- Ошибка при создании объекта из компоненты ROM-MAIL.DLL (Отсутствует CLSID)
- Ошибка загрузки внешней компоненты "Terminals.dll"
- dll не уходит из памяти, висит в процессах
- Ошибка v7plus.dll & autosalon.dll
- Управление торговлей 10.2 вместе с scanopos.dll, scaner1c.dll и USB сканером
- Ошибка при создании объекта из компоненты CipherLab.dll (отсутствует CLSID)
- Чем грозит замена odbcbcp.dll, sqlsrv32.dll, sqlsrv32.dll, в Win7 ?
- v7: Нужны библиотеки seven.dll и DBEng32.dll
- v7: Ошибка при создании объекта из компоненты NameDecl.dll
- v7: Как посмотреть какие объекты может создавать данная версия 1cpp.dll, formex.dll
В этой группе 1С
- 1С Веб клиент локальный ключ
- Интерфейс 1С 8 стандартные действия
- Односторонний обмен РИБ
- БП 3.0 не закрывается 20 счет.
- БП 2.0 Сторнирование НДС предыдущего квартала в книге продаж
- V83.COMConnector
- v7: КАМИН:Расчет заработной платы. Версия 2.0 ПРОФ "Свод отчислений и сборов"
- КД: ПоследовательностьПолейПоиска, не создается новый объект
- T-SQL: Как правильно удалить часть строк в таблице?
- СКД вычисляемые поля.
- Создание документа Операция в БП 3.0
- Сборка заказов покупателей на маршруты доставки
- Метод объекта не обнаружен (Добавить)
- Сертификация в 1С и перевод сертификатов.
- Альфа-авто". Проблема с изменением
- ОповеститьОВыборе от имени другой формы
- Наименование номенклатурной группы. Отчет, СКД
- Иконки в мобильном приложении 1С
- Запретить изменения размера окна 1Сменьше заданного, и убрать кнопку Закрытия 1С
- УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров