title: Troubleshooting: Can't find a referenced unmanaged dll when invoking custom code via a Word code-behind
body: <p>Context:   </p>
  
  <ol>
  <li>I have a WPF App that uses certain unmanaged DLLs in the D:\WordAutomation\MyApp_Source\Executables\MyApp folder. I can double click the exe and everything runs.</li>
  <li>Next I have a Word 2007 code-behind project, that references relevant managed DLLs in the above folder and tries to do the same thing.. bring up the App UI. After adequate 'macheting', I get my UI to show up. But now there is a user-action that forces loading of one of the unmanaged dlls that blows up consistently with a FileNotFoundException (with no help/indication of which file is missing)</li>
  </ol>
  
  <p>I have placed a breakpoint on the problem line, cleared output window, Press F10, compared the output when I run that line (adding an object to an ObservableCollection, whose CollectionChanged handler has code that loads up the unmanaged piece)</p>
  
  <p><em>Case 1: Double-click on EXE.. which works perfectly (slightly snipped)</em></p>
  
  <pre><code>'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).
  </code></pre>
  
  <p>Case 2: Run the same line, but launched from within a Word code-behind .cs file</p>
  
  <pre><code>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).
  </code></pre>
  
  <p>I have tried   </p>
  
  <ul>
  <li>adding the unmanaged DLLs to <strong>the same folder</strong> as the (word doc+VSTO dll)</li>
  <li>added the folder to the <strong>PATH Environment variable</strong>. Still the same.   </li>
  <li>anything I could think of.. for the past couple of days</li>
  </ul>
  
  <p>I notice that Word seems to be copying over the managed ref assemblies to a location as shown in below snippet.. which may be a line of investigation. But why is word doing this and how does it resolve unmanaged DLLs.. I don't know. Also in the first snippet, there are some DLLs loaded from a WinSXS path, that could also be another lead.</p>
  
  <pre><code>'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.
  </code></pre>
  
  <p>Finally to close off gracefully... Help!!</p>