服务找不到引用的DLL

时间:2013-12-18 16:15:28

标签: c# .net service

我有一个引用dll('A')的C#服务应用程序,后者又引用其他dll(比如'B'和'C')。服务项目引用了所有必要的dll。

条目代码调用'A'中的方法,该方法调用'B'或'C'中的方法。我们收到来自“A”的自定义错误消息,指出无法找到“B”和“C”,尽管它们与服务位于同一文件夹中,我们知道这个表示进程工作文件夹不正确(即进程认为工作文件夹位于其他位置)。

问题是:如何明确告诉服务工作文件夹是什么?

TIA

2 个答案:

答案 0 :(得分:3)

Services run in System32

如果将B.dll和C.dll复制到System32文件夹中,它可能会起作用。

要修复它,您应该在解决方案中创建一个安装程序项目。安装程序将处理在正确位置安装所有必需的.dll。

Here's a SO example

编辑#1:

This post有最后一块拼图。必须将Dll与原始项目分开添加到安装项目中。

答案 1 :(得分:1)

关键是我不得不欺骗服务,认为工作文件夹是服务可执行文件所在的位置,我现在可以在代码中轻松完成,这要归功于上面的一些链接。