v2017. Не исполняется DLL на целевом компьютере

Автор Тема: v2017. Не исполняется DLL на целевом компьютере  (Прочитано 13069 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
Здравствуйте господа хорошие.
В качестве писателя я у вас в первый раз (как читатель - можно сказать живу тут), но.. вперся, а время жмет.
На целевой машине dll грузится (NETLOAD - не ругается), но ее команды не выполняются - "неизвестная команда".
На своей - все как часы. OS & AutoCAD - полностью идентичны. Куда копать? Подскажите, плиз

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Причин может быть множество. Например:
1. DLL-файл заблокирован при передаче через интернет. Нужно разблокировать:

2. CopyLocal установлено в True вместо False для acdbmgd.dll, acmgd.dll, accoremgd.dll
3. Возникает исключение в методе Initialize.
4. Используется неустановленная версия .NET Framework
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
1. Явное копирование DLL в корень акадовской папки
2. CopyLocal всех трех - false
3. "Initialize" - такого метода у меня нет
4. .NET Framework - 4.6

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
3. "Initialize" - такого метода у меня нет
Ты в этом уверен?
Это метод интерфейса IExtensionApplication.Initialize(), который вызвается при загрузке dll-файла по NETLOAD
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
4. .NET Framework - 4.6
Версия AutoCAD? Версия Windows?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Явное копирование DLL в корень акадовской папки
Это не значит, что файл разблокирован. Если его передали через интернет, то как его не копируй он останется заблокированным.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
целевой комп на соседнем столе
AutoCad - 2017
Windows - 7-ка
NETLOAD я сам набираю в командной строке Акада на целевой машине, если исключение есть - я должен был это увидеть?

У меня в свойствах проекта "целевая рабочая среда" - стоит ".Net Framework 4.6. Но и на моей и на целевой самая свежая папка "C:\Windows\Microsoft.NET\Framework\v4.0.30319". Но на моем компе прога работает..

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
NETLOAD я сам набираю в командной строке Акада на целевой машине, если исключение есть - я должен был это увидеть?
Нет. AutoCAD сам при запуске метода Initialize перехватывает исключения. Но если исключение возникает, то команды не регистрируются.
У меня в свойствах проекта "целевая рабочая среда" - стоит ".Net Framework 4.6. Но и на моей и на целевой самая свежая папка "C:\Windows\Microsoft.NET\Framework\v4.0.30319". Но на моем компе прога работает..
Имя папки никакого отношения к версии .NET Framework не имеет. Если установлен AutoCAD 2017, то можно использовать .NET Framework 4.6 - он устанавливается (если его не было) при установке AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
целевой комп на соседнем столе
dll-файл передаешь на флешке или по локальной сети?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
по сети

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
по сети
Значит проверь блокировку.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
блокировки нет.
То что я загрузил на целевую Debug-версию Dll может влиять..?

Отмечено как Решение Юрий Кузнецов 15-03-2021, 14:01:22

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
То что я загрузил на целевую Debug-версию Dll может влиять..?
Да. Нужно грузить Release (хотя Debug часто тоже работает).
Ну и вставь отладочную печать в Initialize.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
А как отловить этот метод Initialize, сори, если это очень просто..

Оффлайн Юрий КузнецовАвтор темы

  • ADN OPEN
  • Сообщений: 11
  • Карма: 0
Еде одно большое "сори" - у меня достаточно большой проект - десятки команд из под Акада, бизнес логика, математика.. эти библиотеки (которые Акад не задействуют, но из под команд для него написанных вызываются) они у меня лежат рядом с основной DLL, которая для Акада.. может быть дело в их взаимодействии?