我们有一个安装了某些软件旧版本的客户。 有一个问题,我们已经解决了。只有我们不能将其部署在客户身上。
我自己不是AX专家,但我也不明白问题所在。 我们已经反编译了“旧”的dll,进行了小的更改,然后使用相同的版本号 s etcetera再次进行了编译,并使用相同的密钥对dll进行了签名。 如果我使用dotPeek打开两个版本,我会看到它们具有完全相同的程序集名称。
然后,当我用“新” dll替换“旧” dll并运行AX代码时,出现以下错误:
那为什么不使用新的dll? AX是否检查加载的每个dll的哈希值,从而阻止我的新版本? 我们是否需要重新编译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"