2013-01-04 6 views
0

C#을 사용하여 Windows 서비스를 개발하고 있습니다. Windows 서비스로 CLIPSLIB.dll을로드하려고합니다. 먼저 CLIPSLIB.dll을 프로젝트 디버그 폴더에 두는 vs2010의 콘솔 앱으로 쓰기 서비스를 시도했습니다. 괜찮 았어. 그러나 Windows 서비스로 설치하고 실행할 때이 예외가 발생합니다.Windows 서비스로 CLIPSLIB.dll 파일을로드 할 수 없습니다.

'Mommosoft.ExpertSystem, Version = 0.3.0.2, Culture = neutral, PublicKeyToken = 20382083c6694bdc'또는 해당 종속성 중 하나를로드 할 수 없습니다. 시스템이 지정된 파일을 찾을 수 없습니다.

Windows 서비스가 관련 dll을로드 할 수 없기 때문에 이러한 상황이 발생했음을 알았습니다. Windows 서비스를로드하려면 외부 DLL을 사용해야합니까?

답변

1

Scott Hanselman에는 어셈블리 로딩 오류를 디버그하는 방법을 설명하는 기사가 있습니다. 이 방법의 단점은 퓨전 로더 로깅을 사용하기 위해서는 레지스트리 키 변경과 재부팅이 필요하다는 것입니다.

문서는 여기에서 찾아보실 수 있습니다 그건 : http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx

당신이 어셈블리에 대한 참조가 bin 디렉토리가 아닌 다른 경로를 참조하는 Windows 서비스 점검을 작성하기 때문이다. 그렇지 않으면 퓨전 로더 로그는 어셈블리를로드하려는 위치를 식별합니다.

.dll 파일의 경우 프로젝트에 폴더를 추가하고 .dll 파일을 거기에 추가하고 .dll 파일이 빌드 출력에서 ​​끝나기 위해 빌드 속성을 복사하여 복사하지 않도록 변경하십시오. bin 경로. 당신은 CLIPSLib 솔루션을 다시 빌드해야

0

,

  1. 다운로드 링크에있는 모든 파일 : 링크 : https://svn.code.sf.net/p/clipsnet/code/

    2.Open CLIPSLib.sln CLIPSLib 폴더에

    3.Right- 솔루션을 클릭하고 솔루션을 선택하십시오.

    4. CLIPSLib.dll 및 CLIPSNet.dll이 .. .. mlplatform \ bin floder에 있습니다. CLIPSLib 폴더로 이동하십시오.

    희망이 도움이됩니다.

관련 문제