Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务找不到引用的DLL_C#_.net_Service - Fatal编程技术网

C# 服务找不到引用的DLL

C# 服务找不到引用的DLL,c#,.net,service,C#,.net,Service,我有一个C#service应用程序,它引用一个dll('a'),该dll反过来引用其他dll('B'和'C',比如说)。服务项目引用了所有必要的DLL 条目代码调用“a”中的方法,该方法调用“B”或“C”中的方法。我们从“a”收到一条自定义错误消息,该消息表示找不到“B”和“C”,尽管它们与服务位于同一文件夹中,我们知道这表明进程工作文件夹不正确(即进程认为工作文件夹在别处) 问题是:如何明确地告诉服务工作文件夹是什么 TIA 如果将B.dll和C.dll复制到System32文件夹中,它可能会

我有一个C#service应用程序,它引用一个dll('a'),该dll反过来引用其他dll('B'和'C',比如说)。服务项目引用了所有必要的DLL

条目代码调用“a”中的方法,该方法调用“B”或“C”中的方法。我们从“a”收到一条自定义错误消息,该消息表示找不到“B”和“C”,尽管它们与服务位于同一文件夹中,我们知道这表明进程工作文件夹不正确(即进程认为工作文件夹在别处)

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

TIA

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

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

编辑#1:

这是拼图的最后一块。DLL必须与原始项目分开添加到安装项目。

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

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

编辑#1:


这是拼图的最后一块。DLL必须与原始项目分开添加到安装项目中。

关键是我必须愚弄服务,使其认为工作文件夹是服务可执行文件所在的位置,我现在可以很容易地用代码实现这一点,多亏了上面的一些链接。

关键在于,我必须愚弄服务,使其认为工作文件夹就是服务可执行文件所在的位置,我现在可以很容易地用代码实现这一点,感谢上面的一些链接。

您如何托管服务?您如何托管服务?我应该提到-我有一个安装程序和一个安装和部署项目,用于安装服务,DLL实际上位于服务可执行文件夹中。“但我们似乎仍然不知道在哪里可以找到它们。”尼尔豪顿编辑了我的文章。我无法在我的机器上测试它,但看起来您必须手动将.dll添加到安装项目中(它不会自动执行)。如果有帮助,请告诉我。没有。我已经这样做了,还检查了DLL是否与已安装的服务位于同一文件夹中。它仍然报告说它找不到它们。我真的不想将所有这些DLL复制到System32目录中——它们在那里没有任何业务,它们是我应用程序的一部分,而不是“共享”库。关键在于,我必须愚弄服务,使其认为工作文件夹是服务可执行文件所在的位置,我可以很容易地在代码中完成。我应该提到——我有一个安装程序和一个安装和部署项目,用于安装服务,而DLL实际上位于服务可执行文件文件夹中。“但我们似乎仍然不知道在哪里可以找到它们。”尼尔豪顿编辑了我的文章。我无法在我的机器上测试它,但看起来您必须手动将.dll添加到安装项目中(它不会自动执行)。如果有帮助,请告诉我。没有。我已经这样做了,还检查了DLL是否与已安装的服务位于同一文件夹中。它仍然报告说它找不到它们。我真的不想将所有这些DLL复制到System32目录中——它们在那里没有任何业务,它们是我应用程序的一部分,而不是“共享”库。关键是,我必须愚弄服务,使其认为工作文件夹是服务可执行文件所在的位置,这一点我可以用代码轻松做到。