Question

I've recently updated an old Quickbooks App (Version 13.0) in Visual Studio 2010 and now I'm unable to get it to install correctly. The SDK comes with several merge modules that install the necessary dependencies on the target computer, but by default they install to a different folder other than the installation folder. I want to install them in the working folder of my application or make my application reference that folder instead.

For example:

QBFC13_0.msm installs Interop.QBFC13.dll to the folder "C:\Program Files (x86)\Common Files\Intuit\QuickBooks".

But when my program loads, it gives a FileNotFound exception: "Could not load file or assembly 'Interop.QBFC13Lib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.". I'm able to run and debug my application in Visual Studio, but not on deployed machines. I determined this was the problem when I set the CopyLocal property of that reference to false and it threw the same exception when I started it up in debug.

So how can I change the target folder of the merge modules so they install into the working directory of my application? Or if that's not possible, how can I make it so my application references that folder path on installed machines when searching for dependencies?

Was it helpful?

Solution

From my understanding, you shouldn't need to change the installation location. When the SDK is installed, it should install to the default location (C:\PROGRA~2\COMMON~1\Intuit\QUICKB~1\QBFC13.dll), but it also creates registry entries that let's Windows know the location for this file. It sounds like the installer didn't install or register properly.

On my development machine, I always have Copy Local set to False, as I set my Embed Interop Types to True. The Identity for the QBFC13Lib shows as {0CB030A6-7B72-42CE-B92A-849B4A4A2CFB}, so you may want to check the registry of the target computer to see if the library did get registered. I believe that it creates a registry key at HKLM\SOFTWARE\Classes\TypeLib{0CB030A6-7B72-42CE-B92A-849B4A4A2CFB}

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top