As you all know we are constantly working on improving BetterListView, but once in a while you might encounter a problem which has not found its way to our documentation yet.
Today, our blog post covers an interesting case when using Internet Explorer.
When instantiating an ActiveX control written as a .NET assembly exposed via Interop you might get the following message:
System.IO.FileNotFoundException("Could not load file or assembly 'BetterListView, Version=18.104.22.168, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxxx' or one of its dependencies. The system cannot find the file specified.")
The solution to this problem is a fairly simple one, quoting from an MSDN article:
“… you can install it in the global assembly cache so that it can be activated from any COM client. If the assembly is only going to be activated by a single application, you can place it in that application’s directory.”
Concluding from this short excerpt, you are basically left you with two options:
1) You may register BetterListView in GAC if it is to be shared. But you should be careful with GAC because it allows holding multiple versions of the same assembly. You can make the installer remove any older versions from GAC during installation and add/keep just the newest one.
2) You can put your .net assembly with all third-party DLLs in one directory during installation if it is to be private.
We recommend the second solution as we reckon it to be the safer one.