Video Screencast Help
Search Video Help Close Back
to help
New in the Rewards Catalog: Vouchers for "Symantec Technical Specialist" and "Symantec Certified Specialist" exams.

Problem in Registry Key

Updated: 22 May 2010 | 7 comments
panneer's picture
+1 1 Vote
Login to vote
This issue has been solved. See solution.

Hi All,

I added a new Registry key with DataType as DWord. During first time installation, it is updating the Registry key correctly as dword but during repair scenario, the registry key is getting changed to String DataType and for value '#' is getting added in the beginning. Any idea why it is happening? or Is it a known issue in Wise?

Thanks for the Help,
Panneer.

discussion Filed Under:

Comments

CygnusX1's picture
07
Apr
2009
1 Vote +1
Login to vote

The only things I can think

The only things I can think of off the top of my head is to check to see if the registry value is being written by some other process i.e. self registry, or through one of the com tables.
Perform a repair with creating a log file to see if that sheds some light.

AngelD's picture
07
Apr
2009
1 Vote +1
Login to vote

Is it the same package

Is it the same package that installs the DWORD DataType that performes the repair?
Is the registry key and entry used by other applications?
Check the Event Viewer for packages that has performing a repair to find out which (MSI) candidates that you may have to verify.

Enabling Windows Installer Logging policy may give you some more info if needed.

panneer's picture
08
Apr
2009
1 Vote +1
Login to vote

Is it the same package that

Is it the same package that installs the DWORD DataType that performes the repair?
Is the registry key and entry used by other applications?
Check the Event Viewer for packages that has performing a repair to find out which (MSI) candidates that you may have to verify.

Enabling Windows Installer Logging policy may give you some more info if needed.

Hi,

I apologise for leaving some information. I'm adding a Registry key with DataType as DWord and value for the key i'm getting from user [From UI] and storing in registry. During Repair, we will not get that Dialog hence i'm using System Search which will get the value of key from Registry and update it during repair.
During Repair, AppSearch is getting the value with '#' [ ie #5007 but original value will be 5007] and updating the registry with the new value hence DataType is changing to String from DWord.
Any idea for this issue?

Thanks for the Help,
Panneer.

VBScab's picture
08
Apr
2009
1 Vote +1
Login to vote

There's no need to mess about

There's no need to mess about with AppSearch. Just ensure that the registry entry is set as a key path. That's how repair/self-heal works. Please tell me you don't have similar nonsense set up for files as well...

Don't know why 'x' happened? Want to know why 'y' happened? Use ProcMon and it will tell you.
Think about using http://www.google.com before posting.

AngelD's picture
08
Apr
2009
1 Vote +1
Login to vote

re: There's no need to mess about

Not entirely true.
If the Registry table entry is set to one value and through the UI the user sets another value then that (UI) value would not exist during a repair hence why AppSearch is used to re-read the value back and set the Registry.Value column value back using a formatted string (ex. property) in the Table.Value column.

So the question would be;
What does the Registry table hold for this entry?
How are you referring to the new (AppSearch) value?

Seems that you're not setting a correct value (maybe missing '#' at the beginning of the AppSearch property value).

panneer's picture
08
Apr
2009
0 Votes 0
Login to vote

Not entirely true. If the

Not entirely true.
If the Registry table entry is set to one value and through the UI the user sets another value then that (UI) value would not exist during a repair hence why AppSearch is used to re-read the value back and set the Registry.Value column value back using a formatted string (ex. property) in the Table.Value column.

So the question would be;
What does the Registry table hold for this entry?
How are you referring to the new (AppSearch) value?

Seems that you're not setting a correct value (maybe missing '#' at the beginning of the AppSearch property value).

Thanks for the reply.
Registry table holds value #[PROPERTYNAME]
AppSearch value i'm getting in same PROPERTYNAME.
Yes, I didn't add '#' in the beginning of AppSearch property value. Where should i add # symbol, in the System Search tab before Propertyvalue (ex: #PORTNUMBER)?

I tried setting that registry key as KeyPath and marked 'Never overwrite if Key Path exists' for that component and now it is fine since it is not trying to change the registry key during repair. Will this fix should be fine?

Thanks for the Help,
Panneer.

EdT's picture
09
Apr
2009
0 Votes 0
Login to vote

Yes, that is a viable solution

Marking the component as "Never overwrite if key path exists" is a good solution to your problem.

If your issue has been solved, please use the "Mark as Solution" link on the most relevant thread.