0

C# を使用して Windows サービスの開発に取り組んでいます。Windows サービスで CLIPSLIB.dll を読み込みたいです。最初に、vs2010 で CLIPSLIB.dll をプロジェクトのデバッグ フォルダーに配置して、コンソール アプリとしてサービスを書き込もうとしました。うまくいきました。しかし、それをインストールして Windows サービスとして実行すると、この例外がスローされます。

ファイルまたはアセンブリ 'Mommosoft.ExpertSystem, Version=0.3.0.2, Culture=neutral, PublicKeyToken=20382083c6694bdc' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

これは、Windows サービスが関連する dll を読み込めないために発生していることがわかりました。では、Windows サービスでロードする外部 dll をどこに置く必要がありますか?

4

2 に答える 2

1

Scott Hanselmanが、アセンブリの読み込みエラーをデバッグする方法を説明した記事を掲載しています。この方法の欠点は、フュージョンローダーのログを有効にするためにレジストリキーの変更と再起動が必要になることです。

その記事はここで見つけることができます:http: //www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

Windowsサービスを作成しているので、アセンブリの参照がbinディレクトリを参照しており、他のパスを参照していないことを確認してください。それ以外の場合、フュージョンローダーログは、アセンブリをどこからロードしようとしているのかを識別します。

.dllファイルについては、プロジェクトにフォルダーを追加し、そこに.dllファイルを追加します。.dllファイルがビルド出力ビンパスに含まれるように、ビルドプロパティを[コピーしない]から[コピーしない]に変更します。

于 2013-01-04T18:22:44.323 に答える
0

CLIPSLib ソリューションを再構築する必要があります。

  1. このリンクからすべてのファイルをダウンロードしてください: リンク: https://svn.code.sf.net/p/clipsnet/code/

    2. CLIPSLib フォルダ内の CLIPSLib.sln を開く

    3.ソリューションを右クリックし、ソリューションの再構築を選択します。

    4. CLIPSLib.dll と CLIPSNet.dll が ..\ ..\mlplatform\bin フォルダーにある CLIPSLib フォルダーに移動します。

    この助けを願っています。

于 2016-06-27T21:11:32.883 に答える