This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Repair and Modify fail due to missing msi file
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
Anonymous
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 30, 2007
06:59 PM
Repair and Modify fail due to missing msi file
I've created a new InstallScript MSI installer using IS 2008. The media format is "Network Image (Unlimited)" and it generates a single exe file.
When I use Add/Remove Programs and try to Repair or Modify my installation, I get an error message about it being able to locate the MSI file. The message refers to a folder in the temp directory where all my other setup files can be found, but not the MSI package.
I checked the "InstallShield Installation Information" folder in "Program Files" and the MSI is not there either.
Repair and Modify work fine if I run the original setup.
Can anyone shed any light?
When I use Add/Remove Programs and try to Repair or Modify my installation, I get an error message about it being able to locate the MSI file. The message refers to a folder in the temp directory where all my other setup files can be found, but not the MSI package.
I checked the "InstallShield Installation Information" folder in "Program Files" and the MSI is not there either.
Repair and Modify work fine if I run the original setup.
Can anyone shed any light?
(7) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 31, 2007
09:09 AM
To keep the MSI database from being deleted from the temporary location, perhaps use the single-EXE Web media type, specifying a cache location for the MSI database?
Anonymous
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 31, 2007
10:05 AM
Thanks for the tip!
Using the Web media type lets me cache the msi, but introduces a new problem: when I uninstall, the msi file is left behind (in a folder that is named for the package code guid).
I realize that I can delete it in InstallScript, but unless I'm missing something, the package code does not appear to be available to InstallScript.
Also, the default location of "[LocalAppDataFolder]Downloaded Installations" means that another user can't Modify/Repair. I changed it to [CommonAppDataFolder], but it seems that this feature is not well thought out.
Ideally, the MSI would be stored in "Program Files\InstallShield Installation Information" along with setup.exe etc., and removed on uninstall.
Regards,
David
Using the Web media type lets me cache the msi, but introduces a new problem: when I uninstall, the msi file is left behind (in a folder that is named for the package code guid).
I realize that I can delete it in InstallScript, but unless I'm missing something, the package code does not appear to be available to InstallScript.
Also, the default location of "[LocalAppDataFolder]Downloaded Installations" means that another user can't Modify/Repair. I changed it to [CommonAppDataFolder], but it seems that this feature is not well thought out.
Ideally, the MSI would be stored in "Program Files\InstallShield Installation Information" along with setup.exe etc., and removed on uninstall.
Regards,
David
Anonymous
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 31, 2007
10:53 AM
It turns out I can't delete it in InstallScript because it's in use by the uninstall.
And if I install an upgrade I get multiple "package code" folders and msi files.
How are others handling this?
Regards,
David
And if I install an upgrade I get multiple "package code" folders and msi files.
How are others handling this?
Regards,
David
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 02, 2007
01:57 PM
Hi David,
As far as I know there is no way to remove the cached msi file after uninstall inside the msi file that is uninstalling. We have to cache the file for patching and I have always just left it on the users machine. Not the cleanest option but given our requirements it has gotten by. I would also be interested to see if someone has resolved this issue.
Chris
As far as I know there is no way to remove the cached msi file after uninstall inside the msi file that is uninstalling. We have to cache the file for patching and I have always just left it on the users machine. Not the cleanest option but given our requirements it has gotten by. I would also be interested to see if someone has resolved this issue.
Chris
Anonymous
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 02, 2007
02:32 PM
That seems to be true, although I'm not sure why it's this way. If you don't cache the msi file, then "Remove" works just fine. So why is it necessary to have the msi open if it happens to be present?
In any case, my "solution" is to cache the msi in its "guid" folder under [CommonAppDataFolder]MyCoFolder\MyAppFolder and then on "remove"
I call DeleteDir(ALLCONTENTS) for MyAppFolder and DeleteDir(ONLYDIR) on MyCoFolder.
Of course, it fails, but I can then alert the user to remove it manually.
Regards,
David
In any case, my "solution" is to cache the msi in its "guid" folder under [CommonAppDataFolder]MyCoFolder\MyAppFolder and then on "remove"
I call DeleteDir(ALLCONTENTS) for MyAppFolder and DeleteDir(ONLYDIR) on MyCoFolder.
Of course, it fails, but I can then alert the user to remove it manually.
Regards,
David
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 02, 2007
11:14 PM
RobertDickau wrote:
To keep the MSI database from being deleted from the temporary location, perhaps use the single-EXE Web media type, specifying a cache location for the MSI database?
Can you explain (or just point me to the relevant link) what the differences are between a Web exe and a network image?
Not applicable
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 03, 2007
09:12 AM
Also, the default location of "[LocalAppDataFolder]Downloaded Installations" means that another user can't Modify/Repair. I changed it to [CommonAppDataFolder], but it seems that this feature is not well thought out.
This is actually not correct. The user attempting to locate the cached MSI package is System and not the currently running user. As long as System has access to that location (which it always will), there will be no issues.
However, on some systems, the current user may not have access to CommonAppDataFolder; therefore, it is not the best choice in this situation. LocalAppDataFolder will always have sufficient permissions for the current user to save the MSI package.
The only situation in which this would not be true is a per-user installation, which by definition should cache to LocalAppDataFolder.
Further, Microsoft has reccomended that this is the location you should cache your files. Additionally, they use a similar location as well 🙂
At one point in time, I thought that was the case as well; however, testing shows that it is not.
That seems to be true, although I'm not sure why it's this way. If you don't cache the msi file, then "Remove" works just fine. So why is it necessary to have the msi open if it happens to be present?
Windows Installer may require the source MSI package during runtime. It's kind of a chicken and egg scenario. There is no graceful solution and anything to remove the cached package will require a reboot to finish.
Can you explain (or just point me to the relevant link) what the differences are between a Web exe and a network image?
The biggest differences would be what you can do with each release. A network image doesn't have any capability for things like a downloader, web based installation, or one click install. You can see more, honestly, by just stepping through the release wizard.
The option to cache your package on the local machine exists in both the web and network image release types (the name Cache Web Download is a bit of a misnomer and is no longer used as of 2008).