Aug 30, 2010
04:54 AM
Hi Kiran It's been a while since I struggled with this so I can't remember exactly what I did back then, but I did a quick test today: Using InstallShiled 2008 Premier Edition: Created a new Basic MSI project Created a new component "NewComponent1" Created a new Path Variable "PathVar1" and pointed it to some random filestructure on my disk. Added a dynamic file link to "NewComponent1" to the folder pointed to by Built the MSI. My filestructure had one subfolder, so I got 2 components in the MSI, "NewComponent1" with the static GUID {6BFEEDB1-EF8B-46A4-9CD6-1163D1D2C6BF} as defined in the project and an automatically generated component "_C8B965A23FDEC8E3F1B626B12D7B2C36" with GUID {C8B965A2-23FD-EC8E-3F1B-626B12D7B2C3} Back to the project, renamed "PathVar1" to "PathVar2" and acknowledged the warning about broken file links. In "NewComponent1", brought up the dynamic link dialog and modified the link to use instead of Built the MSI. The generated component now has a new name and GUID {D610A0B7-7262-2964-8577-775A277D61E2} Using the steps above to rename the variable back to changes the GUID back to the original {C8B965A2-23FD-EC8E-3F1B-626B12D7B2C3} So it seems that the name of the variable is a factor when the GUIDs are being generated, but there could of course be other things involved as well - are you using a Basic MSI or an InstallScript project for example? In my case I ultimately solved the problem by writing a small application that generated random GUIDS and modified the .MSI after it has been built. Another possible solution might be to save the project in XML format and use some kind of Search/Replace to rename the path variables before building. What I've would really have liked to see is an option in InstallShield to control this behaviour, but I guess we're stuck with using workarounds.
... View more
Nov 06, 2009
09:17 AM
This is probably the route I'll end up going as well. As far as I can tell from the Windows Installer documentation it should be safe to change the ComponentId without breaking any references after the MSI has been built. Altough I can understand that the current behaviour is what most people want with dynamic file links it also means that you're in now in deep trouble for the reverse scenario, for example if try to create a new side-by-side product version by just copying your old installer project and change some properties (not that uncommon I would guess?)
... View more
Nov 05, 2009
11:15 AM
I'm currently maintaining a rather large install project that contains ~9000 files and makes heavy use of dynamic file linking (for obvious reasons...) I know that dynamic file linking (at least in the past) has been a common problem for upgrade scenarios due to component IDs being automatically generated, but right now I'm facing the opposite problem. For a while now we've seen reports that our product leaves empty folders behind when uninstalled, and I finally managed to track down the issue to different versions of the product installing components with the same GUID. We treat each build of the installer as a separate product with a different installation path, and take great care to update productcodes and static component GUIDs etc. between builds. Dynamic components have not been a problem in the past since we always got new GUIDs generated for those, HOWEVER, it seems that since we upgraded to IS 2008 we're getting the same GUIDs generated for our dynamic components, without having any kind of reference to a previous .msi package! This is true even for installers built on completely separate computers where we have no references whatsoever to any of the old product builds.:eek: After doing some experimenting it looks like InstallShield is using some kind of GUID algorithm based on the path used for the dynamic components since I was able to get a new set GUIDs generated by renaming one of the Path Variables that's part of the component source path. Having to rename our path variables for each build is a real pain-in-the-%&"#workaround though, so could anyone tell me if it's possible to revert to the old behaviour, i.e getting a random GUID generated for each dynamically created component?
... View more
Labels
- Labels:
-
InstallShield 2008
Jun 29, 2009
09:36 AM
I suppose this is more of a bug report, but since it's a low priority issue I don't really feel like paying for an incident report just to report an error so I'd thought I'd just document it for the community. If anyone has any insight or suggestion on how to avoid the issue below please feel free to reply. Problem: We have a rather large setup project (IS 2008) with ~9000 files and ~900 components (which may be an issue in itself, but that's another matter..) Due to the large number of files which may also change between product builds we make heavy use of dynamic file linking to create the setup package. Now, when running validation on the .Msi we recieve a large number of unexpected ICE60 warnings. Upon examining the 'File' table we discover that a number of .xml, .gif and other files have a value entered in the 'Version' column even though these file types do not have any embedded version information. The 'Language' column is empty for these files, which leads to the ICE60 warnings. After looking at the affected files it seems there is a pattern: Component FileName FileSize Version Language -------------------------------------------------------- Comp1 File1.xml xxxxx Comp1 File2.gif xxxxx Comp1 File3.dll xxxxx 1.5.0.0 0 Comp1 File4.gif xxxxx 1.5.0.0 Comp1 File5.xml xxxxx 1.5.0.0 When sorting the files alphabetically per component it appears that everything is fine until a DLL with version information is encountered, after that all subsequent non-versioned files gets the same version attibute as the DLL (but no language attribute). So it seems that when using dynamic file linking the 'Version' attribute is not properly cleared between files when there is a mix of versioned and non-versioned files included in a component.
... View more
Labels
- Labels:
-
InstallShield 2008
Latest posts by JohanNyvaller
Subject | Views | Posted |
---|---|---|
1353 | Aug 30, 2010 04:54 AM | |
1353 | Nov 06, 2009 09:17 AM | |
6660 | Nov 05, 2009 11:15 AM | |
2495 | Jun 29, 2009 09:36 AM |
Activity Feed
- Posted Re: Dynamic File Linking and (non)random Component GUIDs on InstallShield Forum. Aug 30, 2010 04:54 AM
- Posted Re: Dynamic File Linking and (non)random Component GUIDs on InstallShield Forum. Nov 06, 2009 09:17 AM
- Posted Dynamic File Linking and (non)random Component GUIDs on InstallShield Forum. Nov 05, 2009 11:15 AM
- Posted Validation error ICE60 when using dynamic file linking on InstallShield Forum. Jun 29, 2009 09:36 AM