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: Have a Problem with multiple instances and merge Module
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 08, 2007
09:51 AM
Have a Problem with multiple instances and merge Module
Hello,
maybe this was already a thread, but i haven't found it.
I can already install multiple times using multiple instances, but now i need the visual c++ 8.0 CRT to be instllad too, so i selected them from the Redistributable List.
When i try to generate the Installation i got a lot of Warnings like this:
ISDEV : warning -6627: Component downlevel_manifest.8.0.50727.103.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E has nonfile data but does not have InstanceId in its condition
And the Libraries will not installed.
What does this mean/What can i do to get a correct installation ?
At the moment he does not install the MFC dll's.
Andreas
maybe this was already a thread, but i haven't found it.
I can already install multiple times using multiple instances, but now i need the visual c++ 8.0 CRT to be instllad too, so i selected them from the Redistributable List.
When i try to generate the Installation i got a lot of Warnings like this:
ISDEV : warning -6627: Component downlevel_manifest.8.0.50727.103.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E has nonfile data but does not have InstanceId in its condition
And the Libraries will not installed.
What does this mean/What can i do to get a correct installation ?
At the moment he does not install the MFC dll's.
Andreas
(7) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 08, 2007
11:21 PM
Are you sure it doesn't get installed? The CRT libraries get installed in [WINDIR]\WinSxS, and not in the [INSTALLDIR]
The visual C++ 8.0 CRT merge module has a lot of ICE warnings and even one ICE error in it. I have successfully included it in an IS11 project. Maybe IS12 doesn't include it due to the error.
The visual C++ 8.0 CRT merge module has a lot of ICE warnings and even one ICE error in it. I have successfully included it in an IS11 project. Maybe IS12 doesn't include it due to the error.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 09, 2007
01:16 AM
many thanks
There they are. 🙂
I was searching in System32 directory :rolleyes: ....
I Also didn't find an entry in the uninstall software list with 'C++ 8.0'
thats why i thought they weren't installed
Andreas
There they are. 🙂
I was searching in System32 directory :rolleyes: ....
I Also didn't find an entry in the uninstall software list with 'C++ 8.0'
thats why i thought they weren't installed
Andreas
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 09, 2007
03:45 AM
Is it somehow possible to get rid of these warnings ?
Andreas
Andreas
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 09, 2007
10:44 AM
I don't know of a way to avoid the warnings like that for a third-party merge module. It's not a good idea to modify a third-party merge module to add InstanceId conditions to its components.
You may want to consider refactoring the merge module as a setup prerequisite:
[LIST=1]
Create a new Basic MSI project.
Add the Visual C++ 8.0 CRT merge module.
Build a compressed release.
Use the Setup Prerequisite Editor to create a setup prerequisite for Visual ++ 8.0 CRT. Add your compressed release to this prereq.
In your multiple-instance project, add your new prerequisite, and remove the corresponding merge module.
At run time, if an end user installs your product, your installation will install Visual C++ 8.0 CRT (from the prereq) if it is not present. Then your installation will continue with the installation of the base instance of your product. If the end user wants to install a new instance, they'll run your installation again; for this time, the installation won't need to install VC 8. The installation will proceed with installing a new instance. When either instance is uninstalled, the VC 8 data is not affected; it's not associated with specific instances.
So, using a setup prerequisite instead of a merge module enables you to work around the following statement (from the Windows Installer help): "To keep the nonfile data of each instance isolated, the base package should collect nonfile data into sets of components for each instance. The appropriate components should then be installed based on conditional statements that depend on the instance identifier."
I hope that helps.
Debbie Landers
Macrovision Corporation
You may want to consider refactoring the merge module as a setup prerequisite:
[LIST=1]
At run time, if an end user installs your product, your installation will install Visual C++ 8.0 CRT (from the prereq) if it is not present. Then your installation will continue with the installation of the base instance of your product. If the end user wants to install a new instance, they'll run your installation again; for this time, the installation won't need to install VC 8. The installation will proceed with installing a new instance. When either instance is uninstalled, the VC 8 data is not affected; it's not associated with specific instances.
So, using a setup prerequisite instead of a merge module enables you to work around the following statement (from the Windows Installer help): "To keep the nonfile data of each instance isolated, the base package should collect nonfile data into sets of components for each instance. The appropriate components should then be installed based on conditional statements that depend on the instance identifier."
I hope that helps.
Debbie Landers
Macrovision Corporation
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 09, 2007
11:01 AM
Isn't there already a redist package from Microsoft?
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=en
Also it may make sense to avoid the need for the redist just by statically linking the lib into your C++ outputs. I've asked previous clients to do this and they were very happy with the results. Eliminate DLL hell by eliminating the DLL.
I don't really reccomend third party MSM's at all these days because of servicing issues and I particularly would avoid them when attempting to do multiple instance installers. The rules around multiple instance are very, very picky and I wouldn't trust a third party module to have been designed for this.
Serialize or eliminate the dependency, not merge it... that's the better way to go.
http://www.microsoft.com/downloads/details.aspx?FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647&displaylang=en
Also it may make sense to avoid the need for the redist just by statically linking the lib into your C++ outputs. I've asked previous clients to do this and they were very happy with the results. Eliminate DLL hell by eliminating the DLL.
I don't really reccomend third party MSM's at all these days because of servicing issues and I particularly would avoid them when attempting to do multiple instance installers. The rules around multiple instance are very, very picky and I wouldn't trust a third party module to have been designed for this.
Serialize or eliminate the dependency, not merge it... that's the better way to go.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 10, 2007
04:34 AM
thanks,
i think i will use the redist package
Andreas
i think i will use the redist package
Andreas
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 10, 2007
07:09 AM
Btw, if you've never wired up a custom prereq, here is an example using .NET Framework 3.0:
http://blog.deploymentengineering.com/2006/11/using-installshield-12-to-install-net.html
http://blog.deploymentengineering.com/2006/11/using-installshield-12-to-install-net.html