2016-07-25 2 views
0

프로젝트에서 필자는 수학 모델을 해결해야합니다. Microsoft.Solver.Foundation 및 SolverFoundation.Plugin.LpSolve 플러그인을 사용하여이 작업을 수행했습니다. VS2015가 문제없이 파일을 인식하고 참조하며 오류없이 프로그램을 컴파일하고 실행하므로이 두 가지 .dll 파일이 잘 작동하는 것 같습니다.64 비트 OS에서 VS2015에 "lpsolve55.dll"을로드 할 수 없습니다.

그러나 실제로는 "lpsolve55.dll"이 작동하는 최적화가 실제로 해결 될 때까지입니다. 이 dll을 다운로드하여 프로젝트의 bin/Debug 폴더에 넣었습니다. 그러나 VS2015는 그것을 인식하지 못합니다. 나는.

  • "참조 추가"탭에서 간단히 찾아 볼 수 없습니다.
  • DLL (Un-) 레지스트리 엔트리 포인트가 없으므로 regsvr32 cmd-prompt 응용 프로그램을 통해 등록 취소 할 수 없습니다.
  • TlbImp.exe cmd-prompt 응용 프로그램에서 처리 할 수 ​​없습니다. 그래서 기본적으로

, 내가 최적화 해결하려고하면서 (가장 일반적인 인터넷 솔루션을 시도 후) 나는 아직도 오류 메시지가 꽤 불만을 느낄 위를 발견 한 후 -

수 없습니다로를 DLL로드 'lpsolve55.dll': 지정한 모듈을 찾을 수 없습니다. (HRESULT에서 예외 : 0x8007007e가)

이상한 부분도 내가 lpsolve55.dll 사용하여 모든 절대적으로 아무런 문제가없는 비슷한 문제를 해결하는 또 다른 프로젝트를 가지고있다 ....

몇 가지 간단한 정보 :

  • I 참조. 프레임 워크 4.5.2. 4.5와 4.0으로 변경했는데, 이것은 변경되지 않았습니다.
  • 제가 알 수있는 한, 내 프로젝트의 bin/debug 폴더는 동일합니다. 나는 완전히 업데이트 창에 있어요
  • 10 OS, 64 비트, 2015 년은

내 질문에 따라서 여부를 당신의 일부가 비슷한 문제가 발생한 것입니다 당신이 수 있다면 비주얼 스튜디오를 사용하는 동안 그것을 어떤 식 으로든 해결할 수 있습니다.

매우 감사드립니다!

+1

'lpsolve55.dll'이 32 비트 dll 인 경우 프로젝트를 32 비트 프로젝트로 컴파일해야 할 수도 있습니다. –

+1

그리고 코드에서 어떻게 dll에 액세스합니까? 당신은'[DllImport]'를 사용하고 있습니까? 당신이 참조하는 다른 dll에 의해 사용됩니까? –

+0

나와 함께 생각해 주셔서 감사합니다. 32 비트 가능성까지, 나는 이것이 문제라고 의심하지 않는다. 다른 프로젝트는 "모든 CPU"모드에서 빌드되며 현재 작업하고있는 프로젝트뿐만 아니라 설정과 관련하여 컴파일러의 차이는 없습니다. Dllimprot에 대해서는 lpsolve55.dll이 다른 프로젝트 중 하나에 의해 참조되기 때문에 사용하지 않습니다. (완벽하게 인식되는 SolverFoundation.Plugin.LpSolve라고 생각합니다. 아마도 내가 어떻게 찾을 수 있는지 보겠습니다.) LpSolve55,하지만이 특정 DLL을 고유하지 않은 오류가 있다고 생각합니다. –

답변

0

몇 가지 신중한 분석을 통해 문제의 해답을 발견했습니다. 솔직히 말해서, 대부분의 것들이 그렇듯이, 결국 아주 간단했습니다. 이전 프로젝트에서 사용한 경로에 새 bin 폴더가 없어 lpsolve55.dll이 인식되지 않았습니다. 나는 단지 잊었다.

그러나 lpsolve55.dll 디렉터리를 경로에 추가 한 후에도 내 지시문을 해결할 수있는 모델이 없다는 오류가 계속 표시됩니다. 페이지 위

http://lpsolve.sourceforge.net/5.5/MSF.htm

똑바로 LPSolverPlugin를 사용하여 lpsolve55.dll을 액세서하는 방법에 대한 완전하고 안정적인 방법을 제공합니다 : 나는 LPSolverDirective()를 호출 할 때 오류가 발생하기 때문에, 일부 연구는 다음 페이지에 나와 착륙 Microsoft.Solver.Foundation.dll을 벗어났습니다.내 프로젝트의 bin/Debug 및 bin/Release 폴더 편집과 관련된 링크의 메서드를 수행 한 후 LP 모델을 가져 와서 no-time 내에 실행했습니다.

이야기의 사기 - 설명서를 읽으십시오. 나는 전체 멀티 프로젝트 솔루션을 프로그래밍하고 customly-added dll을 사용하는 초심자이지만 희망적으로 이것은 다른 사람이 경험하는 데 도움이된다. 결국 나는 여러 가지 방법을 시도해 봄으로써 많은 것을 배웠으므로 시간이 낭비되지 않았습니다.

관련 문제