WSI files becoming corrupt

This issue has been solved. See solution.
Carl Olsen's picture

I compile my WSI file and it makes a nice MSI. Later, I load in my WSI file again, and it is corrupt. I restore from a backup, and it works fine again, but then re-corrupts. I am not making any changes to the file in the meantime, other than re-compiling.



Symptoms of corruption:



When I click on the "Files" portion in Wise, it locks up. Sometimes it locks up forever, and sometimes just for a few minutes.



When I load the corrupt WSI file I sometimes get the message "Wise has detected invalid component key paths". Or sometimes I get another message that I don't remember (something to the effect of "invalid file"), or sometimes it loads fine.



I also notice that every time the project is saved, it gets bigger by about 500K for no apparent reason. Maybe there is something that needs to be purged?



My hunch is that there is some kind of data within the WSI file that triggers corruption, but I have no idea what. The only change that I have made to the setup in a very long time was to check different languages when it compiles the WSI.



Thoughts?



Thanks,



Carl.



Carl Olsen's picture

I *think* I may have come across the crux of the issue, but I'm not holding my breath.



Long story short: It appears as though Wise does not like the "+" character in a file name. (Though I'm not 100% sure)



Details:



One thing I noticed after a compile was the following set of error messages at the bottom of the screen:



File with key CapsuleO.ord located at d:\development\Applications\Layout\FONTS\CapsuleO+.ord could not be compressed. This may be a temporary file location. Make sure file CapsuleO.ord has a source path.



There were several such error messages, the above is just one example. Each error message had two things in common:



1 - they were files that don't exist anymore in the source folders

2 - the files all contain the "+" character in the file name.



I have my folders in Wise set up with wildcards to pull the files from the source folders. However, these files with "+" in them were obviously not being removed from the project.



So, I created some zero size files of the exact name of the ones mentioned in the error message and abracabadra! It now works! Where Wise used to lock up when I tried to access the "Files" section, it now opens instantly. Other voodoos as described in the previous message also disappeared, though the file size of the WSI file did grow by 100K or so.



So, perhaps there is a bug in Wise, or the "+" character is reserved for special purposes. At any rate, it appears to be working at the moment.



I hope this helps some future wise researcher, and I also have my fingers crossed that this is indeed the issue. I'm not 100% convinced I have fixed it, as voodoo sometimes disappears then reapears on its own, but I am very hopeful. I am going to give this topic some time before I marked it as "Solved"

EdT's picture

From Microsoft's windows installer SDK (MSI.CHM):



Filename

The Filename data type is a text string containing a file name or folder. By default, the file name is assumed to use short file name syntax; that is, eight-character name, period (.), and 3-character extension. A short file name must always be provided because the SHORTFILENAMES property may be set or the target volume for the installation may only support short file names.



To include a long file name with the short file name, separate it from the short file name with a vertical bar (|). For example, the following two strings are valid:



status.txt

projec~1.txt|Project Status.txt

Short and long file names must not contain the following characters:



\ ? | > < : / * "



In addition, short file names must NOT contain the following characters:



+ , ; = [ ]




No space is allowed preceding the vertical bar (|) separator for the short file name/long file name syntax. Short file names may not include a space, although a long file name may. A space can exist after the separator only if the long file name of the file name begins with the space. No full-path syntax is allowed.





Therefore your assessment that a + in the filename may be the cause of your problems could well be correct. However, the problem is not in Wise but a restriction imposed by Windows Installer.



The SDK help file is installed with the Wise toolset and it is worth keeping a shortcut to it handy in your quicklaunch toolbar, as it provides an excellent reference source of Windows Installer information.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.

Carl Olsen's picture

Solution

EdT,



I think you are exactly right. Once again I very much appreciate your input and wisdom!



Thanks!



Carl.