我有一个.net 4.0 DLL(类库),用于为我创建的Windows服务执行某些操作。服务的可执行文件通过向可执行文件的项目添加项目引用来引用此DLL。我也尝试过二进制引用,但结果是一样的:InstallUtil无法从EXE安装Windows服务,因为它无法找到DLL。
我正在处理的系统没有使用GAC注册来定位DLL。相反,在构建后,DLL被复制到服务EXE所在的子目录中,名为“lib”,并且该exe具有匹配的.config文件,其中使用“lib”引用:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib" />
</assemblyBinding>
</runtime>
我们有多个.exes和.dll这样工作。所有这些DLL和匹配的EXE的项目属性和.config文件定义对于我们可以看到的所有内容都是相同的。 但是,对于所有其他人来说,InstallUtil在查找DLL时没有问题,这里失败了。但是,当我将DLL移动到与EXE相同的位置时,一切正常。
我们正在讨论的.config文件被成功引用用于其他目的。
如果您有任何具体问题,请分享,我会回答。 我们很无能为力。