I have an Excel plugin project made using ExcelDNA 1.6 in VB.NET (.NET framework 4.6.2) that uses the NetOffice 1.9.3 wrapper for Excel API calls. I'm using the "semi-annual enterprise" channel version of Excel.
I had a common issue w/ COM wrapped objects which resulted in a reference leak, causing the late bound instance of Excel which NetOffice uses to make API calls to linger around after users exited the main, interactive instance of Excel.
After bisecting my code, I narrowed it down to an instance of OleDbConnectionStringBuilder used to load up a lazy call to create a new OleDbConnection. Surprisingly, despite being just a string builder class, something being loaded in the parent module after calling the .ToString method on the instance isn't being released when the parent Excel instance terminates! It is likely due to the reference counting issues documented in:
Question: what is the proper way to dispose of whatever OLE resources allocated by OleDbConnectionStringBuilder instance once the .ToString method is called? There are no obvious .Dispose or .Parent methods available through the .NET API.