2013-04-11 76 views
1

我有一个.NETc# web服务。 在此Web服务的实现,我称之为我的.dll库的功能,我加载以下列方式这 :.net webservice找不到我的DLL文件

[DllImport("myLibrary.dll")] 
extern static myMethod(); 

在哪里我已经把我的DLL?如果我在我的测试项目中使用这个DLL(它是而不是一个Web服务项目),它可以工作。

否则我有一个错误,因为它无法找到该DLL。

错误:

System.DllNotFoundException was unhandled by user code 
    Message=Unable to load DLL 'myLibrary.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
+1

您是否尝试将其复制到您部署Web服务的bin目录? (不要忘记它,你甚至可以将它添加到你的项目中,在文件属性中的“Copy to output directory”中选择“Copy if newer”。呃...我不喜欢这个,但是把它当作一个选项)。 – 2013-04-11 10:54:07

+0

是的,我试图将dll复制到目录 – Safari 2013-04-11 11:50:49

+0

我复制到myproject的所有子目录中,但不工作.. 我解决了这种方式:我已经把路径:C:\ myLibrary.dll ..但.. ..为什么? – Safari 2013-04-16 08:45:42

回答

0

这次大会需要在同一目录中使用它的组件。因此,如果Web服务部署到IIS并且其程序集驻留在bin中,那么myLibrary.dll也需要在那里。

+0

dll已经进入我的ws项目的bin目录 – Safari 2013-04-11 12:02:10

+0

@GgSalent,这是一个非托管程序集(例如一个旧的C++程序集)吗? – 2013-04-11 12:07:26

+0

我不明白.. :(我的dll语言是C++ – Safari 2013-04-11 12:11:10

0

您是否在服务器上安装了“Visual C++可重新分发给Visual Studio”? 如果不是这可能是问题所在。