繁体   English   中英

服务找不到引用的DLL

[英]Service cannot find referenced DLLs

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

进入代码在“ A”中调用一个方法,在“ B”或“ C”中调用方法。 我们从'A'收到一条自定义错误消息,提示找不到'B'和'C',尽管它们与服务位于同一文件夹中,并且我们知道这表明进程的工作文件夹为错误的(即进程认为工作文件夹在其他地方)。

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

TIA

服务在System32中运行

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

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

这是一个SO示例

编辑#1:

这篇文章是拼图的最后一部分。 Dll必须与原始项目分开添加到设置项目中。

关键在于,我必须欺骗服务以认为工作文件夹是服务可执行文件所在的位置,由于上面的某些链接,现在我可以轻松地用代码来完成工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM