PDA

View Full Version : Merge Modules



DavidGraham167
02-15-2011, 09:30 AM
I am having problems getting my install to work and have been told to use Merge Modules - these are files with a .msm extension.
Seaching the forum it looks as if Mege Modules are not supported yet.
Is this correct?

linder
02-15-2011, 09:36 AM
Hello,

MSM files are also called "merge package files". MSM files are merged into and become part of .MSI files. But SetupBuilder compiles high-performance, native Windows .exe files and not .msi files.

BTW, we plan to make a feature available that lets you convert standard Windows Installer Merge Modules (.msm) into native Windows Installer runtime installer for SetupBuilder in the next version.

But what MSM do you need (and who told you to use "MSM")? Do you try to package a Windows redistributable (most are available as .exe, too)?

Friedrich

DavidGraham167
02-16-2011, 01:59 AM
This is what I was told by 'Open Design Alliance'
"You can use merge modules to do correct ActiveX installation. (You can find the merge modules in "C:\Program Files (x86)\Open Design Alliance\TeighaX 3.4.0\Redist\")
Or you can use registration-free COM activation, and copy all the necessary dlls in your application directory along with necessary manifests.
If you use .NET, you'd better switch to managed wrappers - they don't require registration or SxS manifests."

I've been trying copying the dlls but it doesn't work - I'm not sure what 'necessary manifests' means.
Merge modules sounded like an alternative.

David

linder
02-16-2011, 02:11 AM
David,

IMO, you do not need the MSM at all. I think you only forgot to register the copied ActiveX controls. Did you mark the "Register as OCX/DLL/EXE/TLB" in the File Properties for the ActiveX file(s)? This feature executes the self-registration process for your ActiveX files. If this does not work (and assuming you have all ActiveX files and dependencies available) then the MSM can also not help!!

Registration-free COM is a completely different method. Here is an interesting reading for you (including 'necessary manifest' information):
http://msdn.microsoft.com/en-us/library/ms973913.aspx

But again, I think you only forgot to register the ActiveX file(s).

Does this help?

Friedrich

DavidGraham167
02-16-2011, 03:11 AM
Thanks,
One of my first attemps was to add the ActiveX control with "Register as OCX/DLL/EXE/TLB".
I'm programing in VB 2008 and in the bin\relase directory I have the program exe and interop.TeighaX.dll.
Therefore I assumed all I have to do is add these two files, copy them to my application directory and register the dll.

But when I run my program I get the message "Cannot Create ActiveX Component"

Any suggestions?

David

linder
02-16-2011, 03:28 AM
David,

I don't know what "interop.TeighaX.dll" is, but (IMO) it's not an ActiveX control -- it's a .NET assembly.

http://social.msdn.microsoft.com/Forums/en/vbinterop/thread/6b8b95b5-e002-4741-84e6-e48de64eefa7

Before you create the setup, you have to find out what you have to distribute (it should be listed in the 3rd-party control manual). For example, dependency files, .NET assemblies (is GAC registration required?), etc. Otherwise, it's impossible to create an installer that does not cause a support nightmare for you sooner or later.

Friedrich

linder
02-16-2011, 03:33 AM
BTW, if you are interested, you can send your MSM to our Support (support [at] lindersoft [dot] com) and we'll try to convert it into a SetupBuilder MSI runtime distributable for you. If the MSM is too large (>10MB), just upload it to your server and we'll download it.

But I am not sue if the MSM is the solution to your problem.

Friedrich

DavidGraham167
02-16-2011, 09:37 AM
Thanks for your help.
I eventually got some help form Open Design Alliance - they only appear to answer one question a day. Not as good as your support!
My application now installs. I had to install many dll's that came with the product.
Thanks.

linder
02-16-2011, 10:15 AM
Perfect :) Thank you for the update!

Friedrich