Hi, I duplicated the error I'm about to describe on a couple of machines for 2 different projects.
We are evaluating a number of install products and this is definetely a showstopper for InstallAware. Any help would be much appreciated.
I have a very simple project (created with a project wizard) that is configured to recieve web updates. The deployment type is "Web-Based EXE". I created the installer and I created 1 patch update.
I run the installer successfully
Then I run "myexe \\updatesetup" manually, followed by "myexe \\update" manually. as expected patch is downloaded and installed, succesfully.
But then when i run "myexe \\update" again i get the following error:
"Line 140: Access violation at address BLA in module ntdll.dll. Write of address BLA".
In my other project I get exactly the same error on the same line. The line (which I assume is in the "updates" script) is "SET Variable UPDATE_DETAIL to $UPDATE_NAME$$NEWLINE$$UPDATE_DETAIL_TEMP$)"
Seems like a rather severe bug, so I assume I must be doing something silly. Please help.
webupdate fails when there are no updates
-
- Posts: 26
- Joined: Thu Jun 22, 2006 5:50 pm
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
Can you step through the update script line by line in the debugger, to see what is going wrong? You might have a mis-configured INI file.
You can set the CMDLINE variable using Set Variable to simulate passing in a command line parameter in the IDE.
You can set the CMDLINE variable using Set Variable to simulate passing in a command line parameter in the IDE.
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
-
- Posts: 26
- Joined: Thu Jun 22, 2006 5:50 pm
duplicated with debugger
Michael,
OK, here is what happened:
1. I ran in debugger mode, set command line to "/updatesetup" to make sure all persistent variables are set correctly. So, I stepped through creationg of windows task and sure enough all went as expected.
2. In debugger mode, I ran while setting command line to "/update". Again all went as expected: I stepped through updates being detected, downloaded and installed and of course "installedupdates.dat" file got created.
3. In debugger mode, I ran again with "/update" switch. Stepped through and got the error I described earlier (i.e. "Access violation... in ntdll.dll"). The line that causes the error is this:
Get INI $SUPPORTDIR$\\updates.ini, [$UPDATE_NAME$] Description Value into Variable UPDATE_DETAIL_TEMP
It is indeed kind of odd - after all this line does get executed succesfully the first time i run \\update.
Anyhow my ini file is as follows:
[TriviUpdate]
URL=http://nycsperf1/twclientinstall/trivial/TriviPatch.exe
Description=whatever
Reboot=No
Silent=No
Parameters=
[Update Packs for Versions]
1.0=TriviUpdate
the project is literally trivial, no custom coding of any kind. basically it is a web based project with 1 text file, created with all the defaults with exception of me configuring it to recieve application updates from a http-based url.
PLEASE HELP. I do like the product, but am understandably concerned that right out of the box the basic update functionality doesn't work.
OK, here is what happened:
1. I ran in debugger mode, set command line to "/updatesetup" to make sure all persistent variables are set correctly. So, I stepped through creationg of windows task and sure enough all went as expected.
2. In debugger mode, I ran while setting command line to "/update". Again all went as expected: I stepped through updates being detected, downloaded and installed and of course "installedupdates.dat" file got created.
3. In debugger mode, I ran again with "/update" switch. Stepped through and got the error I described earlier (i.e. "Access violation... in ntdll.dll"). The line that causes the error is this:
Get INI $SUPPORTDIR$\\updates.ini, [$UPDATE_NAME$] Description Value into Variable UPDATE_DETAIL_TEMP
It is indeed kind of odd - after all this line does get executed succesfully the first time i run \\update.
Anyhow my ini file is as follows:
[TriviUpdate]
URL=http://nycsperf1/twclientinstall/trivial/TriviPatch.exe
Description=whatever
Reboot=No
Silent=No
Parameters=
[Update Packs for Versions]
1.0=TriviUpdate
the project is literally trivial, no custom coding of any kind. basically it is a web based project with 1 text file, created with all the defaults with exception of me configuring it to recieve application updates from a http-based url.
PLEASE HELP. I do like the product, but am understandably concerned that right out of the box the basic update functionality doesn't work.
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
I believe I have figured this out for you. The problem is that the version number of the product is not being changed when the patch is being installed. And, the update script eliminates the list of previously installed updates from the DAT file, but it does not check if actually all updates for a version have been eliminated. To add this check, insert these lines:
on line 128 in your update script. You may copy-paste the above three lines starting on line 112 in your update script.
Rebuild your project, and all should be fine!
Code: Select all
if Variable UPDATE_AVAILABLE Equals
Terminate Installation
end
on line 128 in your update script. You may copy-paste the above three lines starting on line 112 in your update script.
Rebuild your project, and all should be fine!
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
-
- Posts: 26
- Joined: Thu Jun 22, 2006 5:50 pm
Who is online
Users browsing this forum: Bing [Bot] and 188 guests