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

Please Help - Error 2343 & Major Upgrade


3 replies to this topic

nc4ted

nc4ted
  • Full Members
  • 8 posts

Posted 22 October 2008 - 21:03

Hi all,

I just added a Major Upgrade item and it seems to be working well. That is, until it tries to uninstall the old program.

I inserted RemoveExistingProducts before InstallInitialize, as I want the old program to be uninstalled completely before the new one gets installed, however I'm receiving an Error 2343: Specified Path is Empty.

Here is a snippet from my log. I've changed the directory names for privacy purposes, and highlighted in bold where I think the error is:

RemoveFiles: File: C:\Documents and Settings\blah\Start Menu\Programs\blah\, Directory:
MSI (s) (4C:A4) [11:58:31:281]: Executing op: ActionStart(Name=RemoveFolders,Description=Removing folders,Template=Folder: [1])
Action 11:58:31: RemoveFolders. Removing folders
MSI (s) (4C:A4) [11:58:31:281]: Executing op: FolderRemove(Folder=D:\blah\blah\blah\dbmigration\,Foreign=0)
RemoveFolders: Folder: D:\blah\blah\blah\dbmigration\
MSI (s) (4C:A4) [11:58:31:296]: Executing op: FolderRemove(,Foreign=0)
MSI (s) (4C:A4) [11:58:31:296]: Note: 1: 2343
Warning 2343.Specified path is empty.
Action ended 11:58:41: InstallExecute. Return value 3.

My question is, where is that FolderRemove function getting its values??

Before the error, you can see this:
FolderRemove(Folder=D:\blah\blah\blah\dbmigration\,Foreign=0)

but in the next one, the Folder parameter is missing:
FolderRemove(,Foreign=0)

Why? Which table does FolderRemove read from?

I've read that the CreateFolder table is where the RemoveFolders action gets its values. But, I have no empty or missing values in that table.

Thanks very much in advance for your help

luke_s

luke_s
  • Full Members
  • 532 posts

Posted 28 October 2008 - 23:47

The problem could be that the uninstall is setting a path in the CreateFolder table of the uninstalled product to a blank value.

In the SDK Doc is also has this -
"The RemoveFolders action removes any folders linked to components set to be removed or run from source. "

Its possible something in the directory table is blank.

luke_s

luke_s
  • Full Members
  • 532 posts

Posted 28 October 2008 - 23:48

Sorry forgot to add that a components folder is resolved by using the directory table.

nc4ted

nc4ted
  • Full Members
  • 8 posts

Posted 31 October 2008 - 23:33

Thanks for writing back, luke_s.

Here's the weird part. That 'dbmigration' folder (which has its own component with the same name, and is not shared or permanent) is NOT in my original CreateFolder table. Also, this component does NOT have a key file.

BUT, when I look at the MSI package in the temp directory, dbmigration is the first entry in the CreateFolder table.

What I'm guessing is that WI sees that there's no key file in the dbmigration component, and so puts it into the CreateFolder table. (I think I remember reading in the SDK that the keyfile of a component becomes the directory if no keyfile is specified.)

So, what I'm going to try is to insert a value into dbmigration's KeyPath column in the Component table, and then remove its entry from the CreateFolder table. Hopefully that will work. I'll write back here what the results are.

The problem with all of this is how do I do all this for a major upgrade?? Yikes.

Please keep the help coming. I really appreciate it.

FYI, if you're interested, here's another snippet from my log: where the blunder occurs

RemoveFiles: File: C:\Documents and Settings\user_blah\Start Menu\Programs\blah\, Directory:
MSI (s) (2C:E0) [15:10:54:140]: Executing op: ActionStart(Name=RemoveFolders,Description=Removing folders,Template=Folder: [1])
Action 15:10:54: RemoveFolders. Removing folders
MSI (s) (2C:E0) [15:10:54:140]: Executing op: FolderRemove(Folder=D:\blah\blah\blah\dbmigration\,Foreign=0)
RemoveFolders: Folder: D:\blah\blah\blah\dbmigration\
MSI (s) (2C:E0) [15:10:54:140]: Executing op: FolderRemove(,Foreign=0)
MSI (s) (2C:E0) [15:10:54:140]: Note: 1: 2343

EDIT: Removing all of the entries from the CreateFolder table worked, but now it behaves even more strangely -- it begins to install, but then halts without an error code. The log shows that it just start to rollback, no error code. Doing action, action ended, then Rollback action. Then setup eventually stops and says it was interrupted before it could complete. Why should doing a major upgrade be so difficult?

Edited by nc4ted, 01 November 2008 - 01:05.