我已经对此进行了大量测试,并将问题与此相关联。我试图保持这一点,但请问是否有任何其他信息你觉得我要离开。
-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问题:(
答案 0 :(得分:0)
虽然我解决了这个问题,但我仍然不完全理解为什么会出现问题,但这就是我发现的......
Vb6总是希望将引用的dll更改为最近注册的dll。我们以前将dll注册到位于C:\中的应用程序目录而不是源代码文件夹中,我们从那里引用它们,并从该目录中获取它们以获取安装包。
当我们切换到subversion时,我们将dll移动到分支内的依赖文件夹中。然而,dll继续被复制并注册到应用程序目录以及构建将从中获取它们。我必须更新构建以从新分支位置获取dll并阻止它们被复制到旧位置。
这似乎解决了这个问题,但我不完全知道为什么,因为两个地方的dll比较显示它们是相同的。