Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

some problem in update


4 replies to this topic

mintychang

mintychang
  • Full Members
  • 8 posts

Posted 13 December 2006 - 06:36

hi,

I have some question in update.

I try to keep some value and replace(reinstall) some value in the same registry after minor update.

So I have some componet to combin one registry key.
like this

componetA:HKLM\test\mykey
value1
value2
componetB:HKLM\test\mykey
keepvalue1
keepvalue2

1.I try to set componetB setting Overwrite property to "NO",but it does not work.why?

2.I set componetB condition to Not PATCH Or Not IS_MINOR_UPGRADE

3.I put componetA in featureA and componetB in featureB and set both install level=1,
then set featureB install condition
level=299 if PATCH,level=300 if CCS_SUCCESS,level=301 if CCS_TEST,level=302 if IS_MINOR_UPGRADE=1
,but it still reinstall all registry

4.after(3),i change condition,level=0 if IS_MINOR_UPGRADE=1,and it work!!
why??

And if i create a new feature at root then put a componet.
all of my registry would not be reinstalled. Even REINSTALLMODE=omus,I check log.But why?



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 14 December 2006 - 17:58

The recommended method is to read the registry entry at beginning (using the System Search view) and use that result to write it back to registry, i.e. use the Property from the AppSearch in your Registry entry.

mintychang

mintychang
  • Full Members
  • 8 posts

Posted 15 December 2006 - 02:24

thanks,i have done it now.By CA I backup the key and restone.

But I still want to know the condition setting of componets and features .
What is happen on it?
It is so freakish.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 15 December 2006 - 17:19

QUOTE
1.I try to set componetB setting Overwrite property to "NO",but it does not work.why?

It's checking the key file. If this file needs to be updated, the other content of the component will be as well.

QUOTE
2.I set componetB condition to Not PATCH Or Not IS_MINOR_UPGRADE

For component condition to take effect in a maintenance install, including small and minor updates, the component must be set to be "transitive" = re-evaluate condition in the InstallShield IDE. Otherwise the condition is only evaluated during first time install.
However if you do this and the condition evaluates to false, the component will be removed which is not what you want. There's no way to selectively prevent the update of single components using component conditions. That's not their purpose.

QUOTE
3.I put componetA in featureA and componetB in featureB and set both install level=1, then set featureB install condition level=299 if PATCH,level=300 if CCS_SUCCESS,level=301 if CCS_TEST,level=302 if IS_MINOR_UPGRADE=1,but it still reinstall all registry

I think this basically results in REMOVE actions for those features. But a patch install includes REINSTALL=ALL and REINSTALL overrides REMOVE.

QUOTE
4.after(3),i change condition,level=0 if IS_MINOR_UPGRADE=1,and it work!! why??

This disables the component which overrides REINSTALL. Note however that this could leave an orphaned feature behind if you set the feature level to 0 during uninstall.
Feature levels and conditions are also not intended to selectively control which features or components should be updated.

mintychang

mintychang
  • Full Members
  • 8 posts

Posted 18 December 2006 - 09:35

Thanks for your description very much.
It seems i made many mistakes in using condition.