I have a setup which has been created using InstallScript MSI project type. This problem is encountered by our client and he wants a quick solution.
Let's assume I have initiated the installation from a path like
C:\Setup_V_1.0.0931.1
Inside this folder I have Setup.exe through which I will install the product. After installation or after some days pass I will change the path to:
C:\New\Setup_V_1.0.0931.1
and this time I want to modify the setup. Actually we are supporting 3 features: Server, Client and Service.
This time I want only Client and not Server. So I will click on the Setup.exe or click on Uninstallation Icon in the Startup Menu which will lead to Maintenance Mode there you have an option to Modify, Repair or Remove. I choose Modify and select the feature, but as the installation progresses, this error message will pop up:
Setup could not find a file on the specified path or Disk. Please check
that the proper disk is inserted or specify a new path. Unable to
locate file c:\New\Setup_V_1.0.0931.1\setup.msi
Then, another popup will be shown saying:
Error: 1706. No Valid Source could be found for product. The Windows
Installer cannot continue.
The next error message is:
Error: 1603. Fatal error during installation. Consult Windows Installer
Help (Msi.chm) or MSDN for more information.
But if I change the path to its original location, it works fine.
How can I solve this?
I event checked in this registry path:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\{Product-Key}
This key contains a lot of information inside InstallProperties. There is a key called InstallSource and its value is C:\Setup_V_1.0.3909.1\. Even after changing this value installshiled is still showing errors.
I found the same registry information for Uninstallation Information:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{Product-Key}
In your properties change ReinstallMode (or maybe Reinstall I forget which) from omus to vomus
the v means cache your install, so it will put your .msi file in c:\windows\installer so it can be used later.
When installing a MSI, Windows Installer saves the original MSI path in registry (the InstallSource entry you mentioned). When running the MSI in maintenance mode, Windows Installer will use this path to find the installation data (CAB files).
When you move the MSI, the path stored in registry is no longer valid, so Windows Installer cannot find the installation data.
A possible solution is to use "Add or Remove Programs" or "Programs and Features" in Control Panel to modify the installation. This way the cached MSI is used.
Related
I am installing Cognos Analytics server by right clicking on the setup file and running as administrator. But I can't continue because it does not show me the license agreement and the option to accept it.
I have Windows 10 and have administrative rights on the user account. Also, the installation file is on C:/Temp/. What am I missing here?
I can only guess as to why the EULA isn't showing up. Perhaps the download is corrupted or you have some graphics issue on the system on which you're installing it. Can you run the installer on another computer simply to see if the EULA prompt shows up correctly?
To circumvent the issue entirely, assuming the download is not corrupted, you could use a response file installation. This would allow you to install the product "headless," which would avoid the need to click through the graphical installer.
The silent installation instructions direct you to provide a response file when running the installation, a template for which can be found here.
I've got an Installscript MSI project that's behaving a bit oddly.
Following a successful installation, if I launch the installation file again, I get a pop-up with a question:
"Do you want to completely remove the selected application and all of its features?"
This, of course, is the expected behaviour.
If I select "No", the "InstallShield Wizard Completed" dialog is displayed, and it notifies me that "The wizard was interrupted before [the application] could be completely installed."
Again, this is all within expected behaviour.
The unexpected bit is that after closing this dialog, the application is partially removed from my machine. The installed files and registry keys are still present, but it no longer appears in Windows' "Apps & features", and if I run the installation file again it starts a new installation, as if the application had never been installed.
I tired enabling maintenance mode, but to no avail. Cancelling the maintenance dialog triggers the same partial removal.
Any clue what's going on here, or ideas to fix this?
I have also faced this issue when long back I was working on InstallShield scripting.
The unexpected bit is that after closing this dialog, the application
is partially removed from my machine. The installed files and registry
keys are still present, but it no longer appears in Windows' "Apps &
features",
Have you implemented the uninstall script functions in your installscript for uninstalling or updating the installation? You may look into these functions and verify the logic for those particular features or components.
and if I run the installation file again it starts a new installation,
as if the application had never been installed.
In the installer folder, where you have your installshield setup.exe, you have TEMP folder in that folder you have "Installation.ini" file, there it tracks the instances it has installed with that particular name.
So it might be because installshield is removing the entry from installation.ini file and when you are trying to install the same package again you are able to do this.
For reference, I am using InstallShield 2015 and the project is a Basic MSI.
I know the uninstaller is created automatically, what I do not like about it is how I'm always shown the "Do you want to allow the following program from an unknown publisher to make changes to this computer?" warning.
Is there a way to sign the uninstaller the same way I do with the program itself so that users don't need to see this warning?
Assuming Basic MSI and Windows 7, I don't know why you'd get this message.
In Windows NT/2K/XP/Vista, MSI stripped the storage out of an MSI and stored it in c:\windows\installer. This was for space considerations and it would resolve the full MSI if content was needed.
In Vista they added UAC and the complaint was uninstall would say unknown publisher because stripping the storage invalidated the cert.
In Windows 7 and beyond they cache the full MSI. So this shouldn't be an issue. A further examination of your environment and uninstall log file would be required to give a better answer.
Is there any way in InstallShield to show the prerequisites which is being redistributed along with the setup.exe are already installed on the target system, like the image below, which shows what is pending on the target system. What if I want to show that this is already installed?
There's nothing in the UI that shows this. You can run setup.exe /debuglog and read through it to figure out what was skipped:
Q105473: INFO: Setup.exe Command Line Parameters
FWIW, I get in the habit of also implementing the check in the MSI ( AppSearch / LaunchConditions tables ). This way if the setup.exe is bypassed and the MSI directly invoked you'll still make sure to not get into a bad state of missing prereqs. If this is too much work for you, you can use the SETUPEXEDIR property to enforce that the MSI was launched by setup.exe.
I am very new to Installshield 2010. I have created a basic MSI setup for my application.
I need to check a few prerequisites for my application those are as below.
Microsoft frame work 3.5 with SP1.
Sql Express 2005.
Visual C++ redistributable
If any of the above things are not installed before means, I have to install while installing my application.
Can anyone guide me How I can install all these prerequisites before I installing my application?
Take a look at "Setup Prerequisites" and "Feature Prerequistes" They are the same except that the former are installed by setupe.exe before calling your MSI and the latter are installed by setup.exe (conditionally) after your feature selection and prior to the execution of the execute sequence in your msi.
If you go for the former, you probably also want to author AppSearch/System Search and Launch Conditions to block your MSI in case the user doesn't enter through the setup.exe.
InstallShield has predefined prereqs ( .PRQ's ) for each of those although I will caution you to atleast use SQL 2005 SP3 as there is a nasty bug in SP2 that can blue screen an XP machine. I'd actually really consider going with SQL 2008 R2.
Also found more info here in this page: http://kb.flexerasoftware.com/doc/Helpnet/InstallShield2011/IHelpSetPrereqCustom.htm
This one took me quite a while to find, hopefully I'll save you some time.
If you just want to force your user to have some applications installed (e.g. 'Visual C++ redistributable') or some specific configuration (e.g. specific Windows version/ reg value etc.)
You can use 'Behavior and Logic -> System Search' add the search for what you need (file/folders/registry entries/ini files values/XML file values),
On "What do you want to do with the value?" dialog select Store the values in the property and use the property in an Install Condition".
This will cause the Search to be executed when your installation package starts and will display an error popup to the user saying what ever message you've entered for the condition.
Few notes:
- If you're looking for a x64bit registry entry - mark the "Search the 64-bit portion of the Registry" check box.
- Did not find a way to edit the Condition once created, when tried to edit it it just lets me see and change the search parameters, but for the condition it only allows to enter it from scratch; as a workaround you can save the project as XML file (Installation Information -> General Information -> Project File Format) and edit the XML externally.
Good luck.