Silverlight COM路径问题

时间:2012-07-12 01:08:04

标签: .net silverlight dll com native

我目前正在使用Silverlight的一些COM dll,我遇到了一个奇怪的问题。我创建了两个正在使用的.NET COM dll,它们都通过DllImport引用其他dll。他们工作得很好。

然后我在项目中添加了第三个COM dll。这个也通过DllImport引用其他dll。一旦我创建它,另外两个休息。他们抛出错误,说他们正在使用的其他dll无法找到。第三个dll工作正常。

这就是我创建它们的方式

AutomationFactory.CreateObject("Com1");
AutomationFactory.CreateObject("Com2");
AutomationFactory.CreateObject("Com3");

再次,如果我只使用Com1和Com2,他们的工作非常好。如果我添加Com3它工作正常,但其他两个无法找到他们的原生dll。

我甚至没有在Com3上调用任何函数,只是创建它而其他函数停止工作。

有什么想法吗?你觉得它可能是某种原生的dll吗?我不明白第三个如何工作但其他人不工作,你会认为如果原来的dll破坏了它们就会停止工作。

1 个答案:

答案 0 :(得分:0)

我想出了一种让它发挥作用的方法。我仍然不能100%确定为什么要这样做。

如果我使用Directory.SetCurrentDirectory将当前目录设置为具有本机dll的目录。

似乎Com3似乎没有更改目录,但由于某种原因,它导致其他COM dll查看当前工作目录而不是它们的注册位置。