У нас есть клиент, у которого установлена старая версия какого-либо программного обеспечения.Есть проблема, и у нас есть решение для нее.Только мы не можем развернуть его у клиента.
Я сам не специалист по AX, но я тоже не понимаю проблемы.Мы декомпилировали «старый» dll, внесли небольшое изменение, перекомпилировали его снова с тем же номером версии s и так далее, и подписали dll с тем же ключом .Если я открываю обе версии с помощью dotPeek, я вижу, что они имеют одно и то же имя сборки.
Затем, когда я заменяю «старый» dll на «новый» dll и запускаю код AX, я получаю следующие ошибки:
- "Сборка, содержащая тип 'namespace.type', не указана."
- "Не удалось создать объект 'CLRObject'."
- "Произошла критическая ошибкав функции [nameOfAxFunction]. "
Так почему же он не берет новую DLL?Проверяет ли AX хэш каждой загружаемой библиотеки и блокирует ли мою новую версию?Нужно ли перекомпилировать код AX ...?
Также в функции AX происходит сбой при создании нового экземпляра типа, который находится в нашей измененной сборке.Так что даже мы не обращаемся к другой dll, которая не может загрузить нашу новую dll, мы идем напрямую из AX в новую версию dll.
Ps:
- У меня есть двойнойпроверен, и тип все еще находится в сборке.
- Сборки заменены на:
"Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin" &
"Program Files\Microsoft Dynamics AX\60\Server\[env-name]\bin"