用相同的dll替换dll解决了这个问题,但是为什么呢?

用相同的dll替换dll解决了这个问题,但是为什么呢?,dll,Dll,我已经用它做了大量的测试,并且已经将问题隔离到了这里。我想把这一点保留下来,但请询问是否有任何其他信息你觉得我遗漏了 -a.exe is our vb6 app that references x.dll -x.dll is an in house vb6 dll that references y.dll -y.dll is an in house .net interop dll -Everything works fine on the development machines. -I

我已经用它做了大量的测试,并且已经将问题隔离到了这里。我想把这一点保留下来,但请询问是否有任何其他信息你觉得我遗漏了

-a.exe is our vb6 app that references x.dll
-x.dll is an in house vb6 dll that references y.dll
-y.dll is an in house .net interop dll

-Everything works fine on the development machines.
-I have more than triple checked our .net setup project to ensure files are being pulled from the correct places.
安装后,从x.dll调用y.dll失败。最终,我能够解决这个问题的方法是通过在目标机器上安装项目安装的x.dll文件上从开发机器复制x.dll。这两者应该是相同的


有人知道这是什么线索吗?这几乎是我所遇到过的最奇怪的dll问题:(

虽然我解决了这个问题,但我仍然不完全理解为什么会出现问题,但下面是我发现的

Vb6始终希望将引用的dll更改为最近注册的dll。我们以前将dll注册到位于C:\中的应用程序目录,而不是源代码文件夹中,我们从那里引用它们,并从该目录中获取它们以用于安装包

当我们切换到subversion时,我们将DLL移动到分支内的一个依赖项文件夹中。但是,DLL继续被复制并注册到应用程序目录,以及生成将从中获取它们的目录。我必须更新生成以从新分支位置获取DLL,并阻止它们被复制到旧位置反倾销


这似乎解决了问题,但我不完全知道为什么,因为对两个位置的dll进行比较后发现它们是相同的。

安装脚本中的权限问题?对坏dll v.s.好副本的权限是什么?对这两个文件进行二进制比较以确保…您可以使用winmerge进行检查,或者任何md5文件都具有相同的权限我只是想确认一下。