Guys,

Looking for some help here.

I have a vendor MSI which has several features in it. One of them is Crystal. If I install this MSI, it is installing Crystal Reports 8 into Windows\Crystal. But I already have a Crystal 8.5 (windows\Crystal) on the same server. Vendor MSI is installing newer files in Windows\Crystal which may break the other apps that are depending on existing Crystal.
I have isolated all the Crystal components in the vendor MSI in such a way that all Crystal files get copied into Program Files\App Folder. But when I installed the MSI, for some reason, Crystal files are being installed into Program Files\App Folder, and also in Windows\Crystal.
How can make sure files that belong to isolated components go to only App folder and not to any other location?

Thanks for any help.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Hi Paul,
i have some problems to imagine your goal.
Are you trying to disable Crystal from this MSI complete or only partially?
If you have isolated the Crystal components, why don't you put a condition on it that never resolves to TRUE?
A more sophisticated aproach would be to check for the presence of Crystal via appsearch and set a property to condition the Crystal installation.
Hope this gives you some ideas.
Regards, Nick
Answered 11/22/2006 by: nheim
Tenth Degree Black Belt

Please log in to comment
0
Hello nheim,

Initially I tried to disable crystal completely. But this app doesn't work if it doesn't have its own crystal files. So now, I want to keep it but isolate it so it won't conflict with exisiting crystal on the server. So I am having problem with isolation. Though I solated every crystal component individually in the MSI, for some reason, when I install this MSI, the Crystal files are going to Program Files\Folder (Which I wanted) and ALSO TO WINDOWS\Crystal (Which I don't want). I don't know why is it happening.

Since it is also copying in windows\Crystal, my whole point in isolation is breaking.

Thanks for your help.

Also when you said, NEVER RESOLVES=TRUE, does this help routing files only to app folder? what does this condition do?
Answered 11/22/2006 by: YRKUMAR
Senior Yellow Belt

Please log in to comment
0
Oh, I know why is it copying in two locations:

This vendor MSI also has a Crystal merge module. So even though I am isolating every crystal component individually, still merge module is placing the Crystal files in Windows\Crystal. Is it correct?

Thanks
Answered 11/22/2006 by: YRKUMAR
Senior Yellow Belt

Please log in to comment
0
Hi Paul,
yes normally Crystal comes in a MM.
But AFAIK, once the MM is merged you can handle this components like any other.
Typically, they look something like this in the component table:
'crdb_filesystem.dll.A95D0BB4_0582_442D_B456_D295EAEB7628'
And on all components from one MM, the GUID-like long appendix are the same.
You also see the MM-components in the 'ModuleComponents' table.
There would be this possibility, to set a condition on each of this components e.g. UNWANTED="1" (UNWANTED would in this case refer to no existing property).
Or you could delete all rows in the 'FeatureComponents' table which point to one of these components.
Or if this is well authored, maybe the Crystal MM is put in one feature in the 'Feature' table, which you could disable by setting the 'Level' column to 200 or so.
Don't forget to look into the 'CustomAction' table. Crystal does also some stuff via CA's.
But acording to folks from Microsoft, if a MM once is merged, there is no easy way to remove the MM from the MSI. The best way would be to get the MM and do a cross reference between the things in the MSI and the MM.
You could download it here (But you have to dig it out of the MSI- and CAB file by yourself):
http://www.installshield.com/downloads/modules.asp?prod=cx&lan=english&xmlUse=y
Hope this clarifies it a bit.
Regards, Nick
Answered 11/22/2006 by: nheim
Tenth Degree Black Belt

Please log in to comment
0
Nick,

Correct me if I am wrong. From your post what I understood is that your solution is to disable Crystal from my package. But my intension is to have it in the MSI, but Isolate it successfully. I want to isolate in a way that all Crystal related files should go to APP folder but not into C:\Windows\Crystal. Thats the goal right now.
But when I isolated, MSI is copying Crystal files into both APP Folder and Windows\Crystal defeating the purpose.

Sorry, if I understood wrong. Thanks for your time and help.
Answered 11/22/2006 by: YRKUMAR
Senior Yellow Belt

Please log in to comment
0
Hi Paul,
don't see why you want this, but this is definitely a case for going to use logging now.
Turn on logging and look for the unwanted files. Especially look for the Action, which is installing them. Maybe it's just 'InstallFiles' but it could also be a Custom Action.
One more question: How did you dou your 'isolation' of the crystal files? By altering the 'Directory table'?
Regards, Nick
Answered 11/23/2006 by: nheim
Tenth Degree Black Belt

Please log in to comment
0
Hey Nick,

Sorry that I could not come back to the post to check your reply. Let me explain why I wanted to isolate Crystal. This is a vendor MSI built with Crystal 8.5 as a feature. But we already have packaged Crystal 8.5 in our environemnt. That means we won't let any LOB app to install same version of Crystal on its own, if we find such case, we will strip out crystal from that package, and use our Crystal as a dependency.
In this case, I tried to strip out Crystal from vendor MSI, but had several issues when I did that. Since ours is Citrix environment, and we already have our Crystal 8.5 package installed on many of servers, I thought it would a good idea to Isolate Crystal in the vendor MSI so that it won't conflict with existing Crystal.

Finally what I did was:

1. Started Install Tailor to Create a new Transform.
2. I merged Crystal feature in the Vendor MSI into the feature that has the main executable.
3. Then I identified every Crystal component in the component table (there are 37 of them).
4. I isolated all Crystal components individually (Isolated Component Option).
5. Right clicked on each component-->Details, Directory was C:\Windows\Crystal. I changed it to Program Files\App Folder\
6. Saved the transform.
7. This time, this it installed all the Crystal files in the app folder and co-existed with our Crystal package.

Thanks again for your thoughts and timely suggestions.
Answered 12/05/2006 by: YRKUMAR
Senior Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity