Hi,
Paul wrote:
> --- In makemsi@yahoogroups.com, "Dennis" <dbareis@...> wrote:
> > --- In makemsi@yahoogroups.com, "Gardner, Paul G." <Paul.Gardner@>
wrote:
> >
> > > Background:
> > > I've downloaded your latest update and was able to get the
compile time
> > > down to 30 min by moving the large files to a separate compression
> > > setting (Thanks!).
I have enabled compile caching but have only tested that it gets cached
and used as expected, not that this doesn't cause any downstream issues.
I can't think of what these might be so cross fingers, you should be
able to add/delete files etc and whether that causes a rebuild is mainly
up to you and your placement of "compile" macros to "group" files, this
was my test code:
<$Files "TryMe.*" DestDir="INSTALLDIR">
<$Compile CACHE="MAIN">
<$Files "TryMeXXXX.mm" DestDir="INSTALLDIR">
<$Compile CACHE="XXXX">
I have performed 2 compiles and created 2 caches. Inserting files above
this (and compiling!) shouldn't cause issues. Only file size and
modification date/time changes are detected as are any change to compile
options.
I have uploaded the code to the makemsi files area, please try and let
me know.
> Also on the ppwizard manual's macro page, there's an extra closing
parenthesis on the following line : "9. Query, How many parameters were
passed?). "
Fixed, thanks
Bye,
Dennis
Hi:
I have a package that I have a fairly anarchic installation method for;
primarily batchfile driven, assumes all sorts of things, asks no questions of
the user, effectively designed to be completely idiot-proof.
I've been asked if it's possible to migrate it to an MSI package.
I'm having a certain amount of difficulty understanding enough of MakeMSI to be
able to work out if I can use it to do what I want or not. I'm happy to embark
on a learning curve if it's justified, but I don't want to spend hours or days
trying to develop something, only to find out that I can't get there from here!
This is relevant to a Windows XP system, I should say.
So, briefly, my installer does these things:
It creates a destination folder of (necessarily) fixed name, if it doesn't
already exist. (If it DOES already exist, it goes off and does some other stuff
instead.)
It copies some files in and makes some subfolders.
It builds a textformat config file that contains a line that includes a load of
fixed content and a variable line that includes the content of a
(machine-specific) environment variable.
It sets specific permissions on the folder and its contents.
There are two potential approaches, it seems to me. One is to replace my
installation batchfile with a makemsi script; the other is to keep everything as
it is but use makemsi to bundle everything up, copy the current installer to a
temporary folder and run the existing installer as its last action.
What I can't tell is whether I can do either thing. I've installed makemsi and
compiled tryme.mm, but the next step necessary seems to be to try to work out
how to solve a problem from what appears to amount to working, but relatively
unexplained code.
I'm completely sure I'm missing something obvious, but because I want to build
something that has almost no ui I'm looking for a simple guide to the essential
commands I need to use, either directly to do things or to issue commands at the
shell, preferably bearing in mind that I'm not a Windows programmer!
Can you point me at a webpage somewhere? Or direct me at one of the sample files
that might already do something along the lines of what I'm hoping to do? Or
tell me I can't get there from here and what I need is <insert package name
here>? ;-)
Thanks!
Tim
Hi,
Sorry for the delay, your email got caught by the spam filter which then
ended up with me sending the response to myself, and I only now
realised :-)
-------- Original Message --------
Subject: Re: [makemsi] Learning curve - Converting Batch File Based
Installation
Date: Sat, 07 Nov 2009 08:44:10 +1100
From: Dennis Bareis <dbareis@...>
To: dennis_bareis@...
References: <hd1i3k+g9f1@eGroups.com>
<5a9a12b10911061327q7d7fd9edsd34ac2d0f6482630@...>
Hi,
Dennis Bareis wrote:
>
> On Sat, Nov 7, 2009 at 3:15 AM, Tim P <t1m_p@...> wrote:
>
> I have a package that I have a fairly anarchic installation method
for; primarily batchfile driven, assumes all sorts of things, asks no
questions of the user,
> effectively designed to be completely idiot-proof.
This should help you work out what it does:
http://makemsi-manual.dennisbareis.com/batch_file_tricks.htm
>> I've been asked if it's possible to migrate it to an MSI package.
>
> I'm having a certain amount of difficulty understanding enough of
MakeMSI to be able to work out if I can use it to do what I want or not.
I'm happy to embark on a learning curve if it's justified, but I don't
want to spend hours or days trying to develop something, only to find
out that I can't get there from here!
Sounds like whatever it does its pretty basic so I don't see why you
can't do it with more sophisticated systems...
> This is relevant to a Windows XP system, I should say.
Windows Installers (.msi) are supported by all OS by default.
> So, briefly, my installer does these things:
>
> It creates a destination folder of (necessarily) fixed name, if it
doesn't already exist.
Folders auto created by file commands or you can directly create.
> (If it DOES already exist, it goes off and does some other stuff
instead.)
Possibly "FindFile" plus Custom Action:
http://makemsi-manual.dennisbareis.com/filefind.htmhttp://makemsi-manual.dennisbareis.com/custom_actions.htm
> It copies some files in and makes some subfolders.
Probably "TREE" option with "Files" command:
http://makemsi-manual.dennisbareis.com/files.htm
> It builds a textformat config file that contains a line that
includes a load of fixed content and a variable line that includes the
content of a (machine-specific) environment variable.
If not an INI file then probably via a custom action.
> It sets specific permissions on the folder and its contents.
See:
http://makemsi-manual.dennisbareis.com/security_related_tools.htm
> There are two potential approaches, it seems to me. One is to
replace my installation batchfile with a makemsi script; the other is to
keep everything as it is but use makemsi to bundle everything up, copy
the current installer to a temporary folder and run the existing
installer as its last action.
>
> What I can't tell is whether I can do either thing.
No problems either way, first is best but takes more work of course.
For the second see:
http://makemsi-manual.dennisbareis.com/repackaging.htm
This page creates (which you don't need to do except possibly if you
want to slowly migrate from the second to the first option over time)
and invokes the batch file as a custom action:
http://makemsi-manual.dennisbareis.com/batch_file_custom_actions.htm
I've installed makemsi and compiled tryme.mm, but the next step
necessary seems to be to try to work out how to solve a problem from
what appears to amount to working, but relatively unexplained code.
> I'm completely sure I'm missing something obvious, but because I want
to build something that has almost no ui I'm looking for a simple guide
to the
> essential commands I need to use, either directly to do things or to
issue commands at the shell, preferably bearing in mind that I'm not a
Windows
> programmer!
Well you can't convert or build something you don't understand which may
be why you will need to go the second option you mentioned.
> Can you point me at a webpage somewhere? Or direct me at one of
the sample files that might already do something along the lines of what
I'm hoping to do? Or tell me I can't get there from here and what I need
is <insert package name here>? ;-)
Hopefully the above helps,
Dennis
Hi Dennis:
Thanks for your help with this.
A couple of things arise:
> > I have a package that I have a fairly anarchic installation method
> for; primarily batchfile driven, assumes all sorts of things, asks no
> questions of the user,
> > effectively designed to be completely idiot-proof.
>
> This should help you work out what it does:
>
> http://makemsi-manual.dennisbareis.com/batch_file_tricks.htm
Sorry, I explained that badly. I know /exactly/ what it does, because I wrote
it. It's anarchic because I've had to solve a couple of problems with things you
can't do in batch and because I've taken a completely dictatorial approach: this
is not going to be something that can be installed anywhere except a single,
specific location because the thing that's being installed (unfortunately) has
its location on disk hard-coded.
> For the second see:
>
> http://makemsi-manual.dennisbareis.com/repackaging.htm
Okay, that's helped somewhat, I think.
So the "quick-and-dirty" approach seems to be for me to use the WrapInstall
command to drop everything I want into a temp folder and then, as the final
action, use ExeCa to invoke the original installer. If I take that approach, I
don't need anything else done at all, and if I can make the output MSI do
nothing more than that -- no user input, no questions, no uninstaller -- then
I've got what I already have but in the format that I'm being asked for.
If that's achievable, what's the simplest script that will achieve it? How many
-- if any -- of the various header files that you routinely include in the
sample files are actually required, if I don't care about what appears onscreen
and don't want it to write anything to the registry?
[In pseudocode, I want an MSI that does something like this:
makedir c:\tempinst
output embedded files with folder structure kept to c:\tempinst
run c:\tempinst\install.exe
quit
]
I can see quite a lot of potential benefit in taking the first (redevelop
installation completely in makemsi) approach -- it will probably reduce the
number of possible points of failure and gives me a way to make something more
professional (always a good thing!) but if, as you suggest, I can hand over a
working solution now and worry about elegance at my leisure, then I've probably
got the best of both worlds!
-- bests, Tim
Hi Dennis,
I want to create an msi that would copy files to the local hard disk, but also
have those files available for the users to read directly from the media, in
case they choose not to install.
In other post, I saw a reply from you that reads:
"Why not make it even easier and simply not include these data files
in the file table at all, they could be installed by a custom action
which reads directly from the CD, there is an MSI property which will
tell you the name/location of the MSI database."
I failed to find a sample of the above within the documentation, could you
provide some sample?
Thanks
Hi,
--- In makemsi@yahoogroups.com, "alortiz007" <alortiz007@...> wrote:
> In other post, I saw a reply from you that reads:
>
> "Why not make it even easier and simply not include these data files
> in the file table at all, they could be installed by a custom action
> which reads directly from the CD, there is an MSI property which will
> tell you the name/location of the MSI database."
>
> I failed to find a sample of the above within the documentation, could you
provide some sample?
There is no sample that puts it all together but there are samples for the
individual steps. A better way that using the property I referred to is the
"SourceDir" property:
http://makemsi-manual.dennisbareis.com/sourcedir.htm"
A Custom Action could use that and perform whatever acttions it needed, of
course the simples solution 9assuming no space issues) would be simply to have
MAKEMSI do its stuff and have a second uncompressed copy of those files that
users may wish to grab.
Bye,
Dennis
Hi,
Yahoo just lost my original reply so sorry but this is the short version...
--- In makemsi@yahoogroups.com, "Tim P" <t1m_p@...> wrote:
> So the "quick-and-dirty" approach seems to be for me to use the WrapInstall
command to drop everything I want into a temp folder and then, as the final
action, use ExeCa to invoke the original installer.
Wrap Install does the "ExeCa" already
>no user input, no questions,
http://makemsi-manual.dennisbareis.com/msiexec_exe_silent_install.htm
> no uninstaller
http://makemsi-manual.dennisbareis.com/no_installation_registration.htm
> makedir c:\tempinst
Not required
> output embedded files with folder structure kept to c:\tempinst
"Files" command(s) - "TREE" option
> run c:\tempinst\install.exe
"Execa" Or use "Wrap Install" for both commands
Bye,
Dennis
I just stumbled over a little bug in uisample.mmh. When disabling the automatic detection if typical button is required, syntax check of the generated vbscript fails:
SYNTAX ERROR ON LINE #46053 (column 59)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46045: RowUpdate()
46047: MmID = "@VBS8840"
46048: TableNow ""
46049: pb_FileHash("Y")
46053> dim DisableTypicalButton : DisableTypicalButton = trueif {ErrorHere:column 59}=> DisableTypicalButton then
The code in uisample.mmh:
---------------------------------------------------------------------------------------
#( ''
#define DisableTypicalSetupButtonIfRequired
;--- Decide if we need the typical button --------------------------------
dim DisableTypicalButton : DisableTypicalButton = true
#if ['<$UISAMPLE_DISABLE_TYPICAL_SETUP>' = 'S']
;--- May want to disable it... ---------------------------------------
<$Table "Feature">
#(
<$Row
@WHERE=^<$UISAMPLE_DISABLE_TYPICAL_SETUP_IF_LEVEL>^
@Code="Y"
>
#)
;--- At least one feature that is deselected by default ----------
DisableTypicalButton = false
<$/Row>
<$/Table>
#endif
;--- Disable the button? -------------------------------------------------
if DisableTypicalButton then<?NewLine>
...
---------------------------------------------------------------------------------------
Adding "<?NewLine>" between "#endif" and ";--- Disable the button?" solves the problem. I havn't look at the problem any further, but I suppose the <$Table> and or <$Row> macro inserts a "<?NewLine>" somewhere and everything is fine if UISAMPLE_DISABLE_TYPICAL_SETUP is "S".
Sorry, no sample code. But setting
#define UISAMPLE_DISABLE_TYPICAL_SETUP A
in TryMe.mm will reproduce the problem.
I updated MakeMsi from 8.148 to 9.296.
Unfortunaltely, I now get validation error ICE70 for some registry entries:
ICE70 ERROR The value '#&H1389' is an invalid numeric value for registry entry RegKey005. If you meant to use a string, then the string value entry must be preceded by ## not #.
I call the Registry macro with VALUE="&H1389" and TYPE="DWORD". Is this no longer supported? At least in the docu there is still an example like this so I suppose this should be working. Using the decimal value (VALUE="5001") works fine, but I would prefer to use the hex value.
Hi Dennis,
First, I would like to say thanks for your great product.
I think I might have found a bug and have some questions...
I intend to use makemsi to build msi setups by batch, these are intended for
large sets of data.
I have had success as long as I can set everything to be in the same disk, I
opted for external cabs, as to reduce the inital load time of the msi ( these
setups can have several GBs in them.)
I ran into a situtation with one of these projects, where there are many files (
aprox 7100 files, 7.9 GB) where for some reason when set to no disk size limit,
it fails ( I don't have that error message at hand), but when I set it, instead
of creating the disks to fit a DVD-R, it creates the cab file for each disk to
be of exactly 387 MB (405,872,640 bytes) What I added into my make file is:
#define+ COMPILE_TYPE <$COMPILE_CAB_EXTERNAL_WITH_MSI>
#define+ COMPILE_CABDDF_MaxDiskSize <$COMPRESS_CAPACITY_DVD+R(SL)>
#define+ COMPILE_RESERVED_BYTES_ON_MEDIA1 314572800
#define+ COMPILE_CABDDF_Compress OFF
#define+ COMPILE_COMPRESS_4_PRODUCTION OFF
also, due to the fact that these files to be installed are already compressed (
PDF files), there is no gain in getting them into cab files, on the contrary, it
has a considerable impact on the makemsi execution time, I saw in another post
you mention something about not leaving the files uncompressed but only
referenced in the internal msi table, however I fail to find documentaion to
that end, can you provide some guidance and /or samples on how to do that?
Thanks,
Alberto
Hi,
I have worked it out and will fix it soon (hopefully tonight) and release a new
version, I think this bugs been there for ages, I was glad it was't my recent
changes :-)
For now you can use "INTEGER" in place of "DWORD".
Bye,
Dennis
--- In makemsi@yahoogroups.com, "Mockenhaupt, Christoph" <c.mockenhaupt@...>
wrote:
> I updated MakeMsi from 8.148 to 9.296.
> Unfortunaltely, I now get validation error ICE70 for some registry entries:
>
> ICE70 ERROR The value '#&H1389' is an invalid numeric value for
> registry entry RegKey005. If you meant to use a string, then the string
> value entry must be preceded by ## not #.
>
> I call the Registry macro with VALUE="&H1389" and TYPE="DWORD".
Hi,
Thanks for reporting it, will fix for next release.
--- In makemsi@yahoogroups.com, "Mockenhaupt, Christoph" <c.mockenhaupt@...>
wrote:
>
> Hi Dennis,
>
> I just stumbled over a little bug in uisample.mmh. When disabling the
> automatic detection if typical button is required, syntax check of the
> generated vbscript fails:
Hi,
--- In makemsi@yahoogroups.com, "alortiz007" <alortiz007@...> wrote:
> I have had success as long as I can set everything to be in the same disk, I
opted for external cabs, as to reduce the inital load time of the msi ( these
setups can have several GBs in them.)
> I ran into a situtation with one of these projects, where there are many files
( aprox 7100 files, 7.9 GB) where for some reason when set to no disk size limit
I will make this page:
http://makemsi-manual.dennisbareis.com/compile_options.htm
Point to this page:
http://makemsi-manual.dennisbareis.com/cabinet_file_size_limitations.htm
My guess is that one of those limits is being exceeded.
> also, due to the fact that these files to be installed are already compressed
( PDF files),
PDFs (in general) can be compressed or uncompressed text.
>there is no gain in getting them into cab files, on the contrary, it
>has a considerable impact on the makemsi execution time
I will try to release a new version of MAKEMSI tonight which matches this doco;
http://makemsi-manual.dennisbareis.com/compile.htm
I have documented how you can group files and supply different compression
options as well as caching the compiles (and that would encourage smaller
cabinets).
> leavingthe files uncompressed but only referenced in
> the internal msi table
Sorry no doco on that the SDK doco is what you'd need and its non-trivial. The
MAKEMSI file(s) commands don't support them.
Bye,
Dennis
Hi,
Now that I've read your email again you are obviously going over the 2GB
limit and this must be a MAKECAB.EXE bug so I am going to add a default
limit of:
#define? COMPILE_CABDDF_MaxDiskSize
<$COMPRESS_MAX_VALID_CAB_SIZE>
The default value calulated as follows, please add to the start of your
script and try and let me know the results:
#ifndef COMPRESS_MAX_VALID_CAB_SIZE ;;0 would
work if not for MAKECAB.EXE bug(s)
;--- User hasn't overriden value so define to 2GB less a safety
margin ---
#define @@2GB 2000000000 ;;2GB as
per "http://en.wikipedia.org/wiki/Gigabyte"
#define @@SafetyMargin 1 * 1024 * 1024 ;;Allow 1MB
#evaluate ^COMPRESS_MAX_VALID_CAB_SIZE^, ^<$@@2GB> -
(<$@@SafetyMargin>)^
#endif
Thanks
Dennis
Dennis wrote:
>
>
> Hi,
>
> --- In makemsi@yahoogroups.com, "alortiz007" <alortiz007@...> wrote:
> > I have had success as long as I can set everything to be in the
same disk, I opted for external cabs, as to reduce the inital load time
of the msi ( these setups can have several GBs in them.)
> > I ran into a situtation with one of these projects, where there are
many files ( aprox 7100 files, 7.9 GB) where for some reason when set to
no disk size limit
>
Dennis,
We would like to download a prior version (9.045) of MakeMsi, as that's the
version we used in testing, and we're preparing to go live. Do you have prior
versions available for download on your website?
Thanks,
Lynn Haynes
Hi,
Normally not (I do recommend users keep old version when upgrading just in case)
but its possible I may have one in a backup at home, I'll check later.
Depending on how complex your msi is (with CAs etc), you may just want to bight
the bullet and compare the msi's using msidiff and compare file/registry from an
install of the old and new as a sanity check.
Bye,
Dennis
--- In makemsi@yahoogroups.com, "Lynn" <lhaynes@...> wrote:
>
> Dennis,
>
> We would like to download a prior version (9.045) of MakeMsi, as that's the
version we used in testing, and we're preparing to go live. Do you have prior
versions available for download on your website?
>
> Thanks,
> Lynn Haynes
>
Dennis,
Thanks for looking into this.
I ran the latest release from today and made the changes you indicated.
It failed with the message below
I kept the debug file and the generated log directory, please let me know if you
want them.
Thanks again.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![ Fatal Error ]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Location : line 41 of
"E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\20161RtmData.MM"
File Line : #output
More Info?: out\20161RtmData.DBG.TXT (console file)
Detected @: Line 16,701 of PPWIZ4MM.4MM (v08.307)
PPWIZARD : Length 441,471 bytes. TimeStamped 20081102161944
Running In: WIN32 ("WIN2K"), REXX-Regina_3.3(Julian)(MT) 5.00 20 Sept 2004
Reason
~~~~~~
Probable Syntax Error detected while checking generated file
Got unexpected RC of "1" (expected RC of 21924)
Error checking
"E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\out\20161RtmData.MM\Log\Pass1+2\
.vbs"
SYNTAX CHECK'S OUTPUT
~~~~~~~~~~~~~~~~~~~~~
E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\out\20161RtmData.MM\Log\Pass1+2.\
vbs(2522, 11) Microsoft VBScript compilation error: Syntax error
SYNTAX ERROR ON LINE #2522 (column 11)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2515: MmID = "@VBS0304"
2516: DeleteTableRows("Dialog_ = 'UserRegistrationDlg'")
2519: MmID = "@VBS0305"
2520: TableNow ""
2522> margin --- {ErrorHere:column 11}=>
Hi,
yes please, I noticed I'd added an extra comma but I'm guessing you picked that
up as it would generate a different issue. probably best to upload to teh
makemsi files area, either way zip it please.
Thanks
Dennis
--- In makemsi@yahoogroups.com, "alortiz007" <alortiz007@...> wrote:
>
> Dennis,
>
> Thanks for looking into this.
> I ran the latest release from today and made the changes you indicated.
> It failed with the message below
> I kept the debug file and the generated log directory, please let me know if
you want them.
>
> Thanks again.
>
>
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!![ Fatal Error ]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> Location : line 41 of
"E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\20161RtmData.MM"
> File Line : #output
> More Info?: out\20161RtmData.DBG.TXT (console file)
> Detected @: Line 16,701 of PPWIZ4MM.4MM (v08.307)
> PPWIZARD : Length 441,471 bytes. TimeStamped 20081102161944
> Running In: WIN32 ("WIN2K"), REXX-Regina_3.3(Julian)(MT) 5.00 20 Sept 2004
> Reason
> ~~~~~~
> Probable Syntax Error detected while checking generated file
> Got unexpected RC of "1" (expected RC of 21924)
> Error checking
"E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\out\20161RtmData.MM\Log\Pass1+2\
.vbs"
>
>
> SYNTAX CHECK'S OUTPUT
> ~~~~~~~~~~~~~~~~~~~~~
>
E:\RtmFactory\workDirs\20161\MsiScripts\RtmData\out\20161RtmData.MM\Log\Pass1+2.\
vbs(2522, 11) Microsoft VBScript compilation error: Syntax error
>
> SYNTAX ERROR ON LINE #2522 (column 11)
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 2515: MmID = "@VBS0304"
> 2516: DeleteTableRows("Dialog_ = 'UserRegistrationDlg'")
> 2519: MmID = "@VBS0305"
> 2520: TableNow ""
>
> 2522> margin --- {ErrorHere:column 11}=>
>
> --- In makemsi@yahoogroups.com, "Lynn" <lhaynes@> wrote:
> >
> > Dennis,
> >
> > We would like to download a prior version (9.045) of MakeMsi, as that's the
version we used in testing, and we're preparing to go live. Do you have prior
versions available for download on your website?
> >
> > Thanks,
> > Lynn Haynes
> >
>
If necessary, I have a copy of a MakeMSI install whose setup dialog box says
"9.0.45". I tried uploading to the Files section, but the file is too big.
Hi,
Please try the code I uploaded to the files area instead.
Thanks,
Dennis
alortiz007 wrote:
>
>
>
> Yes, sorry I forgot to mention that about the comma, and some spaces
> that I guess were added by the yahoo webpage, since the fixes where
> obvoius I did them...
>
> uploaded to the files area:
>
I've never used MakeMSI before but it looks great. We are currenly deploying
some dlls via batch file and it's very unreliable. Can anyone write a sample
install for me so I can get an understanding on how it works? I've looked at the
documentation but it's a little confusing.
What I need the install to do is:
Completely silent install.
Verify .NET 3.5 is installed.
Create 2 new folders.
Unregister files if they exist in folder1 or folder2 from previous installs.
Copy new files to folder1.
Copy new files to folder2.
Register the new files in folder1 and folder2.
I would like the install to show up in add/remove programs.
Thanks very much for anyone that can help!
Hi,
--- In makemsi@yahoogroups.com, "gozzgug" <gozzgug@...> wrote:
>
> I've never used MakeMSI before but it looks great.
> We are currenly deploying some dlls via batch file and it's very
> unreliable. Can anyone write a sample install for me so I can get
> an understanding on how it works? I've looked at the documentation
> but it's a little confusing.
I will assume you have gone through this:
http://makemsi-manual.dennisbareis.com/quickstart.htm
> Completely silent install.
All Windows Installers (.msi) support silent install unless you break it:
http://makemsi-manual.dennisbareis.com/msiexec_exe_silent_install.htm
> Verify .NET 3.5 is installed.
You could use "RegistryRead" to look in registry:
http://makemsi-manual.dennisbareis.com/registryread.htm
> Create 2 new folders.
If you are putting files in here then not required otherwise see "Directory"
command.
> Unregister files if they exist in folder1 or folder2 from previous installs.
Probably a custom action if you detect a batch file based install:
http://makemsi-manual.dennisbareis.com/custom_actions.htm
> Copy new files to folder1.
> Copy new files to folder2.
> Register the new files in folder1 and folder2.
"Files" command (see "SelfReg" parm
> I would like the install to show up in add/remove programs.
Automatic
Bye,
Dennis
Hi all,
The previous .msi has installed 2 files, one is exe file and the other is a data
file.
Data file got changed since installed.
Now new version of exe is going to be released.
Found that both old files got deleted during upgrade.
How can I keep the data file in new .msi? (There is also a requirment that data
file must be erased when uninstalling.)
I tried 'ExeCa' to backup the data file, but cannot find the right sequence.
I also tried disable auto uninstall previous product, but it is not a good idea.
Any help is welcome, thanks in advanced.
Hi,
--- In makemsi@yahoogroups.com, "gdgzls2002" <gdgzls2002@...> wrote:
> How can I keep the data file in new .msi?
> (There is also a requirement that data file must be erased when uninstalling.)
This is the relevant part of the doco:
http://makemsi-manual.dennisbareis.com/resource_life_cycle.htm
But needing to remove on uninstall complicates things, an MSI does know (via a
property) when its uninstalling via the installation of the new version so that
could be used on conditions.
> I tried 'ExeCa' to backup the data file, but cannot find
> the right sequence.
See "InstallExecuteSequence" in this page:
http://makemsi-manual.dennisbareis.com/scheduleca.htm
In the msi being uninstalled the files are removed by "RemoveFiles", this
happens in the msi being installed at "RemoveExistingProducts" (which has been
moved from the default location shown on that page).
Verbose logs can be used to check sequencing...
> I also tried disable auto uninstall previous product,
> but it is not a good idea.
As you won't be able to tell whether or not you need to deleted the data....
Bye,
Dennis
Hello,
I searched the group, but didn't find anything related to this.
Can makemsi be used on a unix OS to build msi files?
Since makemsi is running on top of ppwizard, and ppwizard is unix compatible, it
seems it might be possible.
But I wanted to know if anyone had already attempted this?
The obvious reason for this, is to be able to create msi installers on-the-fly
from a website.
The download page on the website (php code) would create a .mm file on the fly
according to the user profile etc, and compile the msi to send to the user.
Would that be possible?
Hi,
I don't know too much about Linux but unfortunately I'd be very surprised if it
could be done. Msi manipulations need to be done via Microsoft's Windows
Installer and MAKEMSI also needs to generate and execute VBSCRIPT.
Bye,
Dennis
--- In makemsi@yahoogroups.com, "atomix.productions" <stephane.clavel@...>
wrote:
>
> Hello,
>
> I searched the group, but didn't find anything related to this.
>
> Can makemsi be used on a unix OS to build msi files?
> Since makemsi is running on top of ppwizard, and ppwizard is unix compatible,
it seems it might be possible.
> But I wanted to know if anyone had already attempted this?
>
> The obvious reason for this, is to be able to create msi installers on-the-fly
from a website.
> The download page on the website (php code) would create a .mm file on the fly
according to the user profile etc, and compile the msi to send to the user.
>
> Would that be possible?
>
You might be able to pull it off, but it would be extremely
difficult at best. You’d need WINE to run the various executables, and of
course you’d need VBScript. Plus, you would put enormous load on the Web
server because building an MSI takes several minutes of 100% CPU utilization.
But what you want to do can be done a different, and probably
even easier, way.
You build the MSI once as usual. Make sure that any of the
variable information can be configured with properties (remember, the names
must be all caps, so you can set them from the command line).
From there you can take two different approaches. The easy
solution is to use 7-zip and the SFX add-on. You simply create a text configuration
file that contains the command line to be launched – including the
on-the-fly-customized properties. Then you concatenate (with a simple Linux cat
command, or from within your PHP) the 7-zip executable, this configuration file,
and the MSI and give the whole thing a .EXE extension.
One drawback: some firewalls intercept SFX files as malicious.
To avoid that, you can also use Microsoft’s tools to build
a full downloader on the fly based on your MSI. That would allow you to also
provide a code-signing certificate. But I suspect that approach might not work
on Linux.
From:
makemsi@yahoogroups.com [mailto:makemsi@yahoogroups.com] On Behalf Of atomix.productions Sent: Thursday, November 26, 2009 7:25 AM To: makemsi@yahoogroups.com Subject: [makemsi] creating an msi from a linux server
Hello,
I searched the group, but didn't find anything related to this.
Can makemsi be used on a unix OS to build msi files?
Since makemsi is running on top of ppwizard, and ppwizard is unix compatible,
it seems it might be possible.
But I wanted to know if anyone had already attempted this?
The obvious reason for this, is to be able to create msi installers on-the-fly
from a website.
The download page on the website (php code) would create a .mm file on the fly
according to the user profile etc, and compile the msi to send to the user.