我有一个引用dll('A')的C#服务应用程序,后者又引用其他dll(比如'B'和'C')。服务项目引用了所有必要的dll。
条目代码调用'A'中的方法,该方法调用'B'或'C'中的方法。我们收到来自“A”的自定义错误消息,指出无法找到“B”和“C”,尽管它们与服务位于同一文件夹中,我们知道这个表示进程工作文件夹不正确(即进程认为工作文件夹位于其他位置)。
问题是:如何明确告诉服务工作文件夹是什么?
TIA
答案 0 :(得分:3)
如果将B.dll和C.dll复制到System32文件夹中,它可能会起作用。
要修复它,您应该在解决方案中创建一个安装程序项目。安装程序将处理在正确位置安装所有必需的.dll。
编辑#1:
This post有最后一块拼图。必须将Dll与原始项目分开添加到安装项目中。
答案 1 :(得分:1)
关键是我不得不欺骗服务,认为工作文件夹是服务可执行文件所在的位置,我现在可以在代码中轻松完成,这要归功于上面的一些链接。