views:

52

answers:

1

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.

+1  A: 

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
sascha
That is exactly what I needed. Thank you.
pegisys

related questions