Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Can't create patch from compressed image


8 replies to this topic

jsandberg

jsandberg
  • Members
  • 5 posts

Posted 17 December 2003 - 20:22

Does anyone have any ideas how I might be able to create a patch to a compressed MSI install image?

The InstallShield7 "Generate Patch" wizard needs a uncompressed install image of my original basic MSI project. But the wizard reports a 1603 error when it tires to uncompress the image. When I try to create an administration image with "msiexec /a" I get an error 259 (see snippet of log). I can't find any documentation on this error or how to avoid it.

I've also tried building an uncompressed install image from the same set of source files, but that only leads to an "Error 1001 could not find file "c:\program files\...\post.InstallState" when I run the patch on the test machine. I don't understand why this wouldn't work, since product code and original file contents of the files I'm patching are identical. (This actually presents a side issue because I have two configurations I need to upgrade that have same product code and different package codes/contents.)

Many thanks to any ideas you can provide.
John


snippet of msiexec /a log file:

MSI © (70:C8): UI Sequence table 'AdminUISequence' is present and populated.
MSI © (70:C8): Running UISequence
MSI © (70:C8): Doing action: ISMsiServerStartup
Action start 10:02:29: ISMsiServerStartup.
MSI © (70:C8): Creating MSIHANDLE (1) of type 790542 for thread 3528
Action ended 10:02:30: ISMsiServerStartup. Return value 1.
MSI © (70:C8): Doing action: ISStartup
Action start 10:02:30: ISStartup.
MSI © (70:C8): Creating MSIHANDLE (2) of type 790542 for thread 3528
1: The InstallScript engine version currently installed on this machine is adequate.
1: Event 'E23113' is created
1: GetInstallDriver, Can not find InstallDriver in ROT table, Return Code = 0x800401e3
1: {58FE4E83-E3EB-4859-8E9D-1BFFDC261383}
1: Extract supporting files
1: Failed to extract setup.inx, error is 259
1: MsiServerStartup failed. Abort installation.
Action ended 10:02:31: ISMsiServerStartup. Return value 1603.
Action ended 10:02:31: ISStartup. Return value 3.
MSI © (70:C8): Doing action: SetupCompleteError
Action start 10:02:31: SetupCompleteError.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 December 2003 - 08:34

This looks like a InstallScript MSI project, and there's a known issue with Admin installs of this project type that it fails to copy the compiled script file setup.inx.


jsandberg

jsandberg
  • Members
  • 5 posts

Posted 18 December 2003 - 17:26

Thanks for the info. I fear that I'm in trouble. blink.gif

I guess my next question is if there is any way for me to create a patch? My guess is that I've got to build a new project from scratch with the changed files. Am I close? I worry that I'll get my product codes and dependencies messed up.

For future reference, how do I avoid getting InstallScript tied into my MSI install? dry.gif I created a basic MSI project specifically to avoid InstallScript issues. Was my mistake in using the "Setup Launcher" option to create a Setup.exe? It seemed like the only way to ensure MSI 2.0 was installed on 9x machines. Is there a way to do this without the setup launcher?

Finally, would I be better off upgrading to IS 9 to create the patch or should I stick with IS 7 until my next full product release?

Responses on any of these would be of great help to me.

John

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 December 2003 - 19:37

What is the project type you are using really? "InstallScript MSI" or "Basic MSI"?
If it's Basic MSI then you must have added some custom action written in InstallScript. Otherwise there's no reason why your setup would have a script file (*.inx) or require the InstallScript engine.

jsandberg

jsandberg
  • Members
  • 5 posts

Posted 18 December 2003 - 20:22

Well, well. I wonder how those got there?

I found the "ISStartup" and "ISMSIServerStartup" custom actions under Administrator UI sequence. They are NOT under my Installation UI sequence. I also have no InstallScript custom actions in the project -- a bunch of VB scripts, a nested MSI, some EXE calls, but no InstallScript actions.

I inherited the project from another developer. Is it possible that he added an InstallScript, removed it, and then deleted the custom actions from only the Installation UI? Is that why my Basic MSI project is acting a bit schitzoid?

John

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 18 December 2003 - 20:51

That might be the case. I don't think you'll need these in your Admin sequnce. Try to delete them (make a backup first smile.gif) and recompile your setup.

jsandberg

jsandberg
  • Members
  • 5 posts

Posted 19 December 2003 - 16:52

Thank you! smile.gif

Removing those script actions, along with some ISCleanup... actions hiding in my Admin execution sequence lets me run admin mode and use the patch wizard. Certainly a life-saver for my next major release.

I've tested it and the patch I created happily patches my fixed install package. However, this patch does not work with my original (delivered) install package; I get "Error 1001 could not find file 'c:\program files\...\post.InstallState'" when the patch install reaches the "removing temporary files" stage. "Post.dll" is a .NET assembly delivered with the original package.

Any suggestions in this regard? I tried synching the file keys by using the original .msi as the "previous package" for my release. I also tried using the same package code for the fixed install package.


John

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 December 2003 - 17:04

Can you generate a log to get more details about this error?

jsandberg

jsandberg
  • Members
  • 5 posts

Posted 23 December 2003 - 19:18

I think I finally solved my problem. I'm posting it in case anyone is having the same problem uncompressing an image. Of course, this is only useful if you have the identical set of product files that you shipped.

1) I fixed my Basic MSI project (6.0.fix.ism) by removing from all sequences the InstallScript actions: ISStartup, ISMsiEngineStartup, ISCleanUp* (4 of them).
2) I built a new install image (6.0.fix.msi) from my fixed MSI project:
- All the same product files as were shipped in the original (6.0.0.msi)
- Release's "Previous Package" property points to my original package (6.0.0.msi)
- All of the same settings as my original project
- I let the package code change (doesn't seem to matter)
3) I built my updated image (6.0.1.msi)
- Contains updated product files (about 20 of them in my case)
- Based on original Basic MSI project, with fixed sequence
- Release's "Previous Package" property points to my original package (6.0.0.msi)
4) I ran "msiexec /a" to uncompress 6.0.fix.msi and 6.0.1.msi packages to "Admin" folders.
5) I copy the original 6.0.0.msi file over the 6.0.fix.msi file of the "Admin" folder.
6) I used the "Generate Patch" wizard to generate a patch using the Admin images.
- Say "no" to the request to uncompress the image again.

The end result is an "Update.exe" (or .msp if so inclined) that actually works with my original, delivered product release.