http://www.installsite.org/pages/en/msi/authoring.htm
In addition, an MSI file is a database with APIs that can make those changes
programmatically if they need to be automated. There's also a scriptable COM
interface - see the *.vbs files in the installer SDK, WiRunSql.vbs in
particular.
--
Phil Wilson
[MVP Windows Installer]
Definitive Guide to Windows Installer
http://www.amazon.com/exec/obidos/tg/detail/-/1590592972/104-7044380-4696760
"Joe" <J...@discussions.microsoft.com> wrote in message
news:1A9C0910-F2EA-4C10...@microsoft.com...
> I want to create a setup project which will always install my app for All
Users. I've googled for solutions to this and the only way I've seen to do
this is to download the Installer SDK, run the Orca tool and patch the MSI
file (either remove the Installation folder dialog and force ALLUSERS=1, or
patch the "Installation folder" dialog properties so that installation
defaults to all users and the Just Me/Everyone radio buttons are hidden).
>
> However
> a) I want to automate my build and,
> b) I don't want to require all developers who may want to run the build to
download the Installer SDK.
>
> So my question is, is there any way (e.g. using script) of calling
Installer APIs and patching an MSI file without the need to download the
Installer SDK.
>
> Or an alternative, is it possible to create a modified setup project
template in VS.NET 2003 which contains a custom Installation Folder dialog
without the radio buttons.
Thanks for the response.
Firstly you're quite right that I'm focussed on VS setup projects. the client I'm working for is developing in-house apps, they have VS.NET 2003 and the skills to create & modify deployment projects from within the IDE. I don't want to start them on new tools & a new learning curve.
WiRunSql.vbs sounds like just what I need, provided the objects it makes use of exist on a PC without first installing the Windows Installer SDK (I've already installed the Installer SDK on my dev machine so I can't test this just now, but will do so).
I guess in my automated build I need to run the following after the setup project has been built:
wscript wirunsql.vbs "mysetup.msi" "UPDATE Property SET
Value='ALL' WHERE Property='FolderForm_AllUsers'"
Also I have to run some other queries to hide the Everyone/Just Me radio buttons, if you can tell me the queries to use I'd appreciate it, if not I'll no doubt be able to work it out.
A quick way to fix the radiobutton is to set the Attributes of FolderForm,
AllUsersRadioGroup to 0 in the Control table, that will show the Everyone
choice but it can't be changed (assuming you've set FolderForm_AllUsers to
ALL).
It might be useful to set ALLUSERS to 1 in the property table so that a
silent install defaults to Everyone (the UI isn't shown so ALLUSERS never
gets set).
--
Phil Wilson
[MVP Windows Installer]
Definitive Guide to Windows Installer
http://www.amazon.com/exec/obidos/tg/detail/-/1590592972/104-7044380-4696760
"Joe" <J...@discussions.microsoft.com> wrote in message
news:01E37BED-ECC1-4979...@microsoft.com...
I used MakeMsi to edit the VS created .msi. I've automated it by running MakeMsi
from a .bat file that's run from a Build event in a VS subproject that is built
after the deployment project.
In order to ensure the msi actually installed as For All Users, I found that I
needed to move the FindRelatedProducts action to just before ExecuteAction in
the InstallUISequence table.
Mike
One advantage of MakeMSI is that it normally validates the output MSI.
Mike
On Sun, 06 Feb 2005 11:02:01 EST, Mike Blake-Knox <mikeb...@spamintrex.net> wrote:
>In article <E7B97657-4345-4C02...@microsoft.com>, Gary W
>wrote:
>One advantage of MakeMSI is that it normally validates the output MSI.
Not to mention error checking and more smarts :-)
Bye,
Dennis
Dennis Bareis [MVP] (den...@KillSpam.dennisbareis.id.au)
http://dennisbareis.id.au/index.htm
Freeware Windows Installer creation tool (+ "ORCA automation"):
http://dennisbareis.id.au/makemsi.htm