문제 해결 : Word Code-Behind를 통해 사용자 정의 코드를 호출 할 때 참조되지 않은 DLL을 찾을 수 없습니다.

StackOverflow https://stackoverflow.com/questions/319964

문제

문맥:

  1. d : wordAutomation myApp_source executables myapp 폴더에서 관리되지 않은 특정 DLL을 사용하는 WPF 앱이 있습니다. EXE를 두 번 클릭하면 모든 것이 실행됩니다.
  2. 다음으로 위의 폴더에서 관련 관리 된 DLL을 참조하고 같은 일을하려고 시도하는 Word 2007 Code-Behind Project가 있습니다. 앱 UI를 가져 오십시오. 적절한 'macheting'후에, 나는 UI가 나타나게됩니다. 그러나 이제는 관리되지 않은 DLL 중 하나의 로딩을 강요하는 사용자 활동이 있습니다.

문제 라인에 중단 점을 놓고 출력 창을 지우고 F10을 누르고, 해당 라인을 실행할 때 출력을 비교했습니다 (CollectionChanged Handler가 관리되지 않은 조각을로드하는 코드가있는 ObservableCollection에 개체를 추가).

사례 1 : exe를 두 번 클릭하십시오 .. 완벽하게 작동합니다 (약간 스니핑)

'MyApp.DesktopApp.exe': Loaded 'D:\WordAutomation\MyApp_Source\Executables\MyApp\ManagedFrameworkWrapper.dll', Symbols loaded.
'MyApp.DesktopApp.exe': Loaded 'D:\WordAutomation\MyApp_Source\Executables\MyApp\Unmanaged.Framework.dll'
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcr90d.dll', Symbols loaded.
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcp90d.dll', Symbols loaded.
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugMFC_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_2a62a75b\mfc90ud.dll', Symbols loaded.
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\system32\msimg32.dll'
'MyApp.DesktopApp.exe': Loaded 'D:\WordAutomation\MyApp_Source\Executables\MyApp\HelperFunctions.dll'
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\system32\dbghelp.dll'
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcm90d.dll', Symbols loaded.
'MyApp.DesktopApp.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.MFCLOC_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_11f3ea3a\mfc90enu.dll', Binary was not built with debug information.
CCollectionDataType ConstCCollectionDataType ConstCCollectionDataType ConstCCollectionDataType ConstCCollectionDataType ConstCCollectionDataType Const'MyApp.DesktopApp.exe' (Managed): Loaded 'D:\WordAutomation\MyApp_Source\Executables\MyApp\ManagedFrameworkWrapper.dll', Symbols loaded.
'MyApp.DesktopApp.exe' (Managed): Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\msvcm90d.dll', Symbols loaded.
The thread 'Win32 Thread' (0x12ec) has exited with code 0 (0x0).

사례 2 : 같은 줄을 실행하지만 단어 코드-비만 .CS 파일 내에서 시작되었습니다.

A first chance exception of type 'System.IO.FileNotFoundException' occurred in WindowsBase.dll
The program '[5320] WINWORD.EXE: Managed' has exited with code 0 (0x0).

나는 시도했다

  • 관리되지 않는 DLL을 추가합니다 같은 폴더 (Word doc+vsto dll)로
  • 폴더를 추가했습니다 경로 환경 변수. 여전히 동일합니다.
  • 내가 생각할 수있는 모든 것 .. 지난 며칠 동안

나는 아래 스 니펫과 같이 Managed Ref Assemblies를 위치로 복사하는 것으로 보인다. 이는 조사 라인 일 수있다. 그러나 왜 단어 가이 일을하고 어떻게 관리되지 않는 DLL을 해결 하는가 .. 나는 모른다. 또한 첫 번째 스 니펫에는 Winsxs 경로에서로드 된 DLL이 있는데, 이는 또 다른 리드가 될 수 있습니다.

'WINWORD.EXE' (Managed): Loaded 'C:\Documents and Settings\pillaigi\Local Settings\Application Data\assembly\dl3\6HQYB5GK.LY0\KC4WN109.HT4\4d81c901\70abeb86_124ec901\MyWPFPlotPopup.DLL', Symbols loaded.

마침내 우아하게 닫으려고 ... 도와주세요 !!

도움이 되었습니까?

해결책

DLL이 문제를 일으키는 원인과 DLL이 사용되는 곳을 찾으려면 (SYSINTERNALS가없는) 사용 프로세스 몬을 찾으십시오.

내 대답을 참조하십시오.참조 답변

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top