1
폴더에 응용 프로그램 "app.exe"(C++ 응용 프로그램)가 있습니다. C# DLL (csharp.dll)을 호출하기 위해 C++/CLI DLL (clr.dll)을 작성했습니다. 이 두 DLL은 등 폴더에 있습니다.C++/CLI DLL에 종속 된 .NET 어셈블리 검색 경로
Release
|-etc
|-clr.dll
|-csharp.dll
|-app.exe
App.exe가는 clr.dll을로드 할 수 있지만 csharp.dll를 찾을 수 clr.dll 없습니다.
fuslogvw.exe를 사용하여 CLR이 폴더에서 검색하려고하는지 확인했습니다.
CLR이 내 등 폴더에서 검색하는 방법을 알아낼 수 있습니까?
저장 DLL을 아주 나쁜 방법입니다. OS에서 시작하여 clr.dll을 찾는 데 도움이되지 않습니다. 다행스럽게도 PATH 환경 변수로 땜질 거리는 것 같은 더러운 것을하지 않았 으면 좋겠다. 관리되는 어셈블리에 대해서도 똑같이, CLR은 GAC를 먼저 찾고 EXE와 동일한 디렉터리를 찾습니다. 서브 디렉토리를 보면, C++ 응용 프로그램과 동일한 디렉토리에 appname.exe.config 파일이 필요합니다 (['요소] (https://docs.microsoft.com/en). -us/dotnet/framework/configure-apps/file-schema/runtime/probing-element)에 있습니다. –
@HansPassant :이 응용 프로그램은 이미 개발되었으며 바이너리는 폴더 구조로 분류됩니다. 따라서이 응용 프로그램이로드 될 때 응용 프로그램에서 dll을 찾을 수 있도록 일부 경로가 PATH 환경 변수에 추가됩니다. 이제 이것에 따라 별도의 폴더에 내 dll을 배치해야합니다 (app.exe와 함께하지 않음). 설정 파일은 유일한 방법입니까? –
하루 종일 좋은 조언을 게시 할 수 있습니다. 그러나 사용자가 "분류되어 있기 때문에"듣고 싶지 않고 제안 된 솔루션을 사용하고 싶지 않으면 하드 스쿨에 참석하여 배워야합니다. –