\Building or Updating MSIsUnattended MSI BuildsCan MAKEMSI be used without installing it on the machine?
Can MAKEMSI be used without installing it on the machine? |
You may wish to either run MAKEMSI from a server or you might wish to
do a simpler local machine installation (silently).
I haven't tried this but I've provided this info to others and they
haven't told me of any issues:
- MAKEMSI itself would not need installation...
The installation is mainly for nice to haves such as explorer
extensions and tools.
- If there are issues after following these instructions, remember
that MAKEMSI installed the source for it's msi
(C:\Program Files\MakeMsi\Samples\Other\MAKEMSI Source),
examine it!
- Of course MAKEMSI like any "good" msi can be
installed silently, one
way to do this is with "MsiSync.VBS"
just prior to invoking the msi build.
I'd rather MAKEMSI was "correctly" installed.
- Copy the main files across (mainly ".mmh"),
try whole directory then prune and test or zip and unpack,
should be quick enough..
- Probably needs to be added to path environment variable.
- You may wish/need to set up other env vars (test), look at
the "*.dbg.txt" file created in the out dir of one where you
build TryMe.MM from correctly installed MAKEMSI (it lists env vars),
some examples:
- The "MAKEMSI_DIR" variable, an example value
is "C:\Program Files (x86)\MakeMsi\" (notice terminating slash).
- The "PPWIZARD_TEST_REGINA_VER" variable, an example value
is "3.3(JULIAN)(MT)".
Others will be listed here
and you can also see what makemsi installs by examination of the installed
"makemsi.hta" documentation.
- Run the MAKEMSI command line (actually PPWIZARD command line)
shown in the "*.dbg.txt" file
(from a "normally" installed makemsi), the following is an
example from building "TryMe.MM" (with "my options"):
reg4mm.exe PPWIZ4MM.4MM '/ConsoleFile:+out\TryMe.DBG.TXT' /ErrorFile: /OTHER 'TryMe.mm' /Define:MmMode=D /DeleteOnError:N '/Output:out\*.*\-IgnoreMeUnlessNotEmpty-.txt' /Sleep:0,0 '/BuildTitle:/OTHER/Building from {x22}{IS}{x22}' /option:Tabs='4' /IncludePath=*MAKEMSI_USER_FILES_PATH;*MAKEMSI_COMPANY_SUPPORT_DIR;
Note that "PPWIZ4MM.4MM" is a renamed PPWIZARD executable.
For more details about switches see the "PPWIZARD" manual.
One of the main principles of PPWIZARD and MAKEMSI is to create a
single point of failure, for this reason I highly recommend
encapsulating the above command and any other related ones in your
own batch file command, like I have for "MM.CMD" (you may be able to use it as is).
- You my wish to create a batch file to run it, if so if you use
the "setlocal" command all environment variables you set will be
"temporary".
- MAKEMSI or scripts may take input from environment variables,
sometimes this can be overridden with macros
(perhaps by the PPWIZARD "/Define" switch) or you could use
PPWIZARD's "SetEnv()" function to set the environment
variables.
For example your common header file could begin with:
#DefineRexx ''
call SetEnv "SomeEnvVar1", "SomeValueFor1";
call SetEnv "SomeEnvVar2", "SomeValueFor2";
#DefineRexx