【问题标题】:Can not load the CLIPSLIB.dll file with Windows Service无法使用 Windows 服务加载 CLIPSLIB.dll 文件
【发布时间】:2013-01-04 18:10:20
【问题描述】:

我正在使用 C# 开发 Windows 服务。我想用 Windows 服务加载 CLIPSLIB.dll。首先,我尝试在 vs2010 中将 CLIPSLIB.dll 作为控制台应用程序写入服务,并将 CLIPSLIB.dll 放在项目调试文件夹中。它工作得很好。 但是当我安装它并作为 Windows 服务运行时,它会抛出这个异常。

无法加载文件或程序集 'Mommosoft.ExpertSystem, Version=0.3.0.2, Culture=neutral, PublicKeyToken=20382083c6694bdc' 或其依赖项之一。系统找不到指定的文件。

我发现这是因为 Windows 服务无法加载相关的 dll。那么我应该把外部 dll 放在什么地方来加载 Windows 服务呢?

【问题讨论】:

    标签: c# dll windows-services clips


    【解决方案1】:

    Scott Hanselman 有一篇文章描述了如何调试程序集加载错误。这种方法的缺点是它需要更改注册表项并重新启动才能启用融合加载程序日志记录。

    这篇文章可以在这里找到: http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

    由于您正在编写 Windows 服务,请检查程序集的引用是否指向 bin 目录而不是其他路径。否则,融合加载程序日志将识别它尝试从何处加载程序集。

    对于 .dll 文件,在项目中添加一个文件夹并在其中添加 .dll 文件,将构建属性从不复制更改为如果更新则复制,以便 .dll 文件最终出现在您的构建输出箱中路径。

    【讨论】:

      【解决方案2】:

      您必须重建 CLIPSLib 解决方案,

      1. 下载此链接中的所有文件: 链接:https://svn.code.sf.net/p/clipsnet/code/

        2.打开CLIPSLib文件夹中的CLIPSLib.sln

        3.右键单击解决方案并选择重建解决方案。

        4.转到您的 CLIPSLib.dll 和 CLIPSNet.dll 位于 ..\ ..\mlplatform\bin floder 的 CLIPSLib 文件夹。

        希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        相关资源
        最近更新 更多