How to run a repair/reinstall of a broken legacy setup
Hi all,
We have an application installed on a number of computers, it was originally installed via an installshield legacy setup. If an admin is required to perform a repair/reinstall of the product it's trying to access setup.ini from the original source location (which is a network location that no longer exists).
i looked in c:\program files\installshield installation information. in the directory for the product i've run strings from sysinternals over setup.ilg and identified the source locations are specified within this binary file.
So I was hoping someone could suggest where I go from here? is there anyway to modify that file, or is the source location specified in the registry somewhere?
thanks.
We have an application installed on a number of computers, it was originally installed via an installshield legacy setup. If an admin is required to perform a repair/reinstall of the product it's trying to access setup.ini from the original source location (which is a network location that no longer exists).
i looked in c:\program files\installshield installation information. in the directory for the product i've run strings from sysinternals over setup.ilg and identified the source locations are specified within this binary file.
So I was hoping someone could suggest where I go from here? is there anyway to modify that file, or is the source location specified in the registry somewhere?
thanks.
0 Comments
[ + ] Show comments
Answers (4)
Please log in to answer
Posted by:
anonymous_9363
13 years ago
Posted by:
weberik
13 years ago
im not sure how good your msi knowledge is, i will keep my keep my explanation short, just ask if you need further assistance.
on the first glimpse its pretty complicated, but you can learn a lot about MSIs here :)
first some background information:
* since you have source management i guess the legacy setup contained a MSI.
* all MSIs are cached in c:\windows\installer
the cache contains everything except the files.
* "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[UserSID]\ProductCodes\[PackageCode]\InstallProperties"
contains all the Metadata of the MSI, including which file in the cache belongs to.
* where the installer starts to search the files is configured in the regkey "HKEY_CLASSES_ROOT\Installer\Products\[CompactProductCode]\SourceList\Net\[Counter]"
the counter is usually 1.
* the file table of the MSI contains info where the source file is in the source folder (e.g. compressed, uncompressed, subfolder etc).
putting all that together you might already figured out how to solve your problem.
you need to edit the sourcelist or recreate the folder where the MSI came from containing at least the setup.ini.
SO.... first search the MSI in the cache, you can do that by searching for the name of the product in the regkey that describes the metadata (it contains a name called "LocalPackage"). it should contain a path like C:\windows\Installer\476c4.msi.
open that msi with the msi editor of your choice. read the source path for the setup.ini (e.g. by looking in the file table with instedit) and remember it or write it down.
(an alternative way would be to read the path out of the repair log, tell me when you need to know how to do that)
then go to the key that describes the source path (HKCR\Installer....) as described above. (search function might help)
check where the MSI was installed from, remember that folder or change the key to a folder where you can put the setup.ini.
create a structure the MSI expects in that folder.
repair the application.
good luck and post some feedback!
on the first glimpse its pretty complicated, but you can learn a lot about MSIs here :)
first some background information:
* since you have source management i guess the legacy setup contained a MSI.
* all MSIs are cached in c:\windows\installer
the cache contains everything except the files.
* "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[UserSID]\ProductCodes\[PackageCode]\InstallProperties"
contains all the Metadata of the MSI, including which file in the cache belongs to.
* where the installer starts to search the files is configured in the regkey "HKEY_CLASSES_ROOT\Installer\Products\[CompactProductCode]\SourceList\Net\[Counter]"
the counter is usually 1.
* the file table of the MSI contains info where the source file is in the source folder (e.g. compressed, uncompressed, subfolder etc).
putting all that together you might already figured out how to solve your problem.
you need to edit the sourcelist or recreate the folder where the MSI came from containing at least the setup.ini.
SO.... first search the MSI in the cache, you can do that by searching for the name of the product in the regkey that describes the metadata (it contains a name called "LocalPackage"). it should contain a path like C:\windows\Installer\476c4.msi.
open that msi with the msi editor of your choice. read the source path for the setup.ini (e.g. by looking in the file table with instedit) and remember it or write it down.
(an alternative way would be to read the path out of the repair log, tell me when you need to know how to do that)
then go to the key that describes the source path (HKCR\Installer....) as described above. (search function might help)
check where the MSI was installed from, remember that folder or change the key to a folder where you can put the setup.ini.
create a structure the MSI expects in that folder.
repair the application.
good luck and post some feedback!
Posted by:
anonymous_9363
13 years ago
Posted by:
weberik
13 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.