Question

I have been running in to an issue where a COM dll that I am distributing with my application fails to register because the atl.dll is not registered on the machine.

The quick fix is to have the run regsvr32 on the dll, but I want something a little cleaner then that.

I don't have much experience with deployment and I was wondering if there is a way that I could determine if the atl.dll is registered on the machine and if not I could register it from code.

I currently have a C# custom action for my msi installer so I could possibly add logic there to perform the task.

Thanks in advance.

Was it helpful?

Solution

You will need to include the correct Merge Module with your installer. These will be installed to C:\Program Files\Common Files\Merge Modules. If you don't find the required files, you probably haven't installed the "Redistributable Components" feature in either the Windows SDK and/or Visual Studio (I think it's unselected in both by default)

  • ATL90.DLL can be found in Microsoft_VC90_ATL_x86.msm
  • ATL80.DLL can be found in Microsoft_VC80_ATL_x86.msm
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top