.DLL version hell

Category: general office development


dd_ on Mon, 20 Feb 2017 01:47:10

We have a COMS solution with VBA add-ins to hook into another vendors application – we’ll call software A. 

We have a powerpoint and excel VBA addin. For integration the addin contains reference links to a vendors application  -  software A to  the file. 

C:\Program Files (x86)\NetDocuments\ndOffice\NetDocuments.Client.COM.tlb 

Latest version 


Software A had a version upgrade. I re-referenced the powerpoint and excels links to the latest version of the .tlb file

Tested and passed both excel & powerpoint,  and the upgrades were pushed out the the firm. 

I’ve been receiving helpdesk calls from certain users, reporting opening powerpoint presentations PowerPoint hangs and is not responding. 

I discovered these users have additional software - we'll call software B installed. and the powerpoint and excel reference link is now pointing to the same tlb file name  for software  B however in a different vendors sub-folder path 

C:\Program Files (x86)\PopStack\BigHand NetDocuments Integration\NetDocuments.Client.COM.tlb

older version 


On the users pc if I manually open the powerpoint template, reference to software A  the correct tlb location  

C:\Program Files (x86)\NetDocuments\ndOffice\NetDocuments.Client.COM.tlb 

Save as a addin file ppam and place in the correct addin location ie 

C:\Program Files (x86)\Microsoft Office\Office15\ADDINS 

The result PowerPoint works. However software B  now breaks and doesnt launch , and no longer runs with Event Log errors as 

.NET Runtime version 2.0.50727.5485 - Fatal Execution Engine Error (74A5FB1E) (80131506) 


Unable to read custom property BHPlaybackDocumentIdentifier 

< GetRawCustomProperty > 

Our solution is developed on .NET framework 4.5.1 

On the users machine with software B  installed why is my powerpoint template add-in pointing to the software Bs tlb file .  Ive not seen this before

any ideas how I can get this working. 



My Powerpoint - the correct files to reference


dd_ on Mon, 20 Feb 2017 23:30:49

in Excel/ PowerPoint 2013/ VB

--- Description ---

I‘ve a PowerPoint add-in with a Reference library to a dll. a vendors dll to access the APIs.


C:\Program Files (x86)\NetDocuments\ndOffice\NetDocuments.Client.COM.tlb

Ive manually added the dll. in VBA goto Tools, References… Browse, navigate and select the dll. Save the template. Save As an excel/powerpoint addin

Ive deployed the PowerPoint add-in to the firm.

Some users are reporting opening a PowerPoint presentation, PowerPoint hangs and wont launch.

I discovered users reporting the issue have additional software B installed that accesses the same dll however in a different path location.

My PowerPoint add-in is referencing Software Bs dll reference path, and is causing powerpoint to hang. For some reason my dll reference path is being overwritten and software B dll reference path location is taking precedent.

Software B is a COM add-in registering the dll GUID  

C:\Program Files (x86)\PopStack\BigHand NetDocuments Integration\NetDocuments.Client.COM.tlb

GUID {C9F3FF41-70E7-49B2-AA04-BDD12D77C464}

--- Steps Ive implemented ---

On my machine I manually re-reference to the correct dll location, save the add-in. The results the dll location is correct.  I don’t have Software B.

If I manually copy and paste the updated addin to a users machine that has Software B installed. Launch PowerPoint. The results are the addin re-references to Software Bs dll path location and PowerPoint hangs again

On the users machine if I open the PowerPoint template, manually re-reference to the correct dll path location, Save As an add-in. Launch PowerPoint the results now behaves correctly and the correct dll location ‘sticks’

Ild like an automated solution to deploy to the machines. I cant sit at each users pc with software B installed and manually update and re-reference to the correct dll in PowerPoint add-in

I don’t want to Programmatically point to the correct dll location

I read on a post to register the GUID.  Ive obtained the GUIDs and file locations each application is using. Both different applications are pointing to the same file name therefore the GUIDs are the same id {C9F3FF41-70E7-49B2-AA04-BDD12D77C464}

--- Questions ---

The recent change is software A has been upgraded which includes the dll and is a newer version dll.  My powerpoint add-ins has been re-referenced to the latest dll version in the correct path location.  Software B still contains the old dll version. The dlls are now different versions. <o:p></o:p>

The addin and software B have been installed and behaving correctly for over a year and half.  This is the first time this issue has occurred.<o:p></o:p>

How can I set the correct specified dll path location<o:p></o:p>

I have an excel add-in referencing the same dll. When I launch excel the dll reference is pointing to Software Bs dll path location, in VBA, Tools, References, select the Reference. The location displays Software Bs path location. However excel is behaving correctly.<o:p></o:p>

Are the references stored in memory somewhere, or in the registry.<o:p></o:p>

Im using an excel/powerpoint template. I manually add the reference library dll.  in VB menu goto  Tools, References, Browse, manually navigate and select the reference library.in the correct path location (not Software Bs path location)<o:p></o:p>

Save the template<o:p></o:p>

SaveAs an add-in.


Edward8520 on Tue, 21 Feb 2017 05:27:36

Hi dd_,

Is software B developed by you? Is this NetDocuments.Client.COM.tlb developed by you? Or is it a third party reference?

How did you install your software A? Will you register NetDocuments.Client.COM.tlb under below path?

C:\Program Files (x86)\NetDocuments\ndOffice\NetDocuments.Client.COM.tlb

It seems to be related with different versions of NetDocuments.Client.COM.tlb.

Best Regards,


dd_ on Tue, 21 Feb 2017 05:35:08

hello Edward

Software A is a third party vendor reference. Its the firms core system being a Document Management System

Software B is a third party vendor reference. Software B requires integration to Software A therefore references to NetDocuments.Client.COM.tlb.

Thanks Edward

Edward8520 on Tue, 21 Feb 2017 06:18:04

Hi dd_,

Thanks for more information. 

Since both A and B are third party vendor reference, I would suggest you contact third party vendor for help. They are more familiar with their product, and they could share you whether it is a limitation of multiple version in the same computer, or whether there is any solution for hosting multiple version in the same computer.

Best Regards,


dd_ on Tue, 21 Feb 2017 22:29:53