Hi there:
Quick question: my application uses SMO, and I need to install that on the user's machine. I got the download from Microsoft in the form of a .msi file (the Microsoft SQL Server 2005 Management Objects Collection download from http://www.microsoft.com/downloads/details.aspx familyid=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&displaylang=en) . Is there any way for me to incorporate that msi file into my setup project
I tried going through the prerequisites (I already have .Net 2.0 and Sql Server Express in there), but it is not dynamic enough to allow that.
I could try and package the SMO assemblies one by one (the dlls were already added as dependencies), I'm just not sure how to force them to be installed in the correct folder, so I'm assuming the msi package would do just that.
If not, any other way that I can achieve this
Thank you,

"Foreign" msi files in a Setup project
GSReddy
I was actually looking at that, and it seemed like the right thing to do. Unfortunately, I need either a package or a product xml file and none were provided with the msi file.
I tried creating one by myself, but VS definitely didn't want to accept it (didn't balk, but would not show it in the prerequisites window). I even tried copying one of the xml files from another package (and modify the package name) with no success.
Is there any place I can find out what to put in the xml file(s) to make it work
Thank you!
Ray Brack
Can you send me the callstack from the error trying to load the help file I've been having a hard time reproing the problem.
You can get to the help file by going to your Documents and Settings folder and doing a dir /s for *.chm... find the bootstrapper one and open it :-)
vbzuki
Right, great, thanks, Phil!
So, what this basically does is stop the package from being reinstalled if it's already there. Otherwise I could put pretty much whatever I want in the product code entry, right For example it could say "Microsoft.SqlServerXMOComponents.2" and it would still fly, but will get installed even if it's already there
Thanks again,
Kardi
You could customise the prerequisites as described here:
http://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/
Sweeps78
Lee Eden
No worries :-) I tried to make it easy, maybe too easy :-)
Let me know how it goes.
Daikoku
Thanks, Phil, that's great info. I thought the product code is supposed to be a composite ID value (publisher.product.version), not a guid. If I use a guid as a product code it will work Can I then use the same guid to the DependsOnProduct Code entry in other packages dependent on that one
Example, the SMO package seems to be depending on MSXML and Sql native client packages, can I use their product code in the DependsOnProduct Code entry
Thanks again,
VitaminB6
Kevin Stephens
Kamel Balquis
chukky
Very nice piece of software you got there, David!
I downloaded it and installed it. Loaded the SMO msi file I downloaded from Microsoft and added the conditions I needed (bypassif already there, failif MSXML6 is not installed, etc.). Now I have a manifest file with (I hope) the right information in it. What can I do with it
I tried the Bootstrapper Manifest Generator's help, but it errors out everytime, so I'm not sure. The manifest file looks eerily similar to the product.xml file needed to be able to include the package in the 'prerequisites' of my project, but I put it in a folder in the "...\bootstrap\packages" folder on my machine and VS can't see it.
As you can see, I am going to take you up on that offer to help :-)
Thank you,
chrisc12345
I actually looked for one, couldn't find it. There's a post here on the forum somewhere that says no msm for SMO, mostly to avoid servicing issues in the future, so I guess there is no msm.
Thanks anyway.
gafferuk
You can use the Bootstrapper Manifest Generator to create the bootstrapper package for the SMO installer. It's at: http://www.gotdotnet.com/workspaces/workspace.aspx id=ddb4f08c-7d7c-4f44-a009-ea19fc812545
So the ProductCode in a Package.xml file is completely different and unrelated to a Windows Installer Product Code. You can create an MSI Check in your bootsrapper package that checks to see if the SMO MSI ProductCode is already installed, and then create a ByPassIf InstallCondition that causes the bootstrapper to skip the SMO install if it's already installed.
I hope that helps. This thread got a little tough to follow, so if I can help better, let me know.
Ken S
Oops! Spoke too early :-)
Truth be told I only clicked the Build button after I sent the message, so now I know how it works. A thousand appologies for this. I will try the package see how it works.
Thank you again for your help and (again) sorry for jumping the cue :-)