Invalid registry data fixup

R

Roberto Hofer

Hi,

I got over some prob in Target Designer giving me the warning "Invalid
registry data fixup", when building the image (not while checking
dependencies). Which registry hives may I fill in TD, because I get
this warning for every key I try to add keys in HKEY_CLASSES_ROOT and
also for some in HKEY_LOCAL_MACHINE. But when I pack the same registry
entries into a reg file and import them manually after FBA through a
double click, everything works fine.

So my question is how to force FBA (or TD) to import those keys, which
are needed for the new ICA 8 Program Neighbourhood?

Putting them in the "Extra registry data" in TD doesn´t solve
anything!

Thanks in advance and best regards!

Roberto Hofer
 
S

Slobodan Brcin \(eMVP\)

Hi Roberto,

Can you post sample of reg file so we can see what is wrong with it.
I can't remember correctly, but it can be related to either non existing
registry branches (non likely) , or spaces in names (more likely).

After you import reg file in TD or CD, check that all information have
appropriate spaces and values like in registry from which you created reg
file.

Regards,
Slobodan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
M

Mark K Vallevand

I've noticed that some registry branches are not created in TD, but only
exist after FBA has run. I created a component that ran late in FBA (8500+)
and called regedit to load the registry data from a .reg file.
 
S

Slobodan Brcin \(eMVP\)

Hi Mark,

You are right but these branches are created by PnP phase, and component
registrations, and who know what else during the FBA.
Depending on what you are trying to change you don't have to go that high
(8500+).

But keep in mind that many things created in these phases are GUID like so
you can't rely on your reg files, most likely you will need some simple
application to modify certain parameters.

Regards,
Slobodan

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have an opinion on the effectiveness of Microsoft Embedded newsgroups? Tell
Microsoft!
https://www.windowsembeddedeval.com/community/newsgroups
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
R

Roberto Hofer

Hi Slobodan!

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile2]
@="Shortcut"
"EditFlags"=dword:00000001
"NeverShowExt"=""

[HKEY_CLASSES_ROOT\lnkfile2\CLSID]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\Offline Files]
@="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\DropHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\IconHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\PropertySheetHandlers]


Just a short example. When I import the file above manually through
double clicking it, everything does fine. Just Target Designer has a
problem, when I import the .reg file into my component and build the
image. It isn´t that much of a problem to do it manually afterward,
but I do not understand the reason of this warning. Why am I not
allowed to define this reg data (or at least why does TD block it)?

Thanks in advance and best regards!

Roberto Hofer
 
S

Slobodan Brcin \(eMVP\)

Ah this refreshed my memory,

I was looking if I have reported this unwanted feature to MS. But I can't
find it in my outbox.

Nevertheless. You have two problems one reported by TD and one not reported
but serious.

Problem 1.
Named key values are not supported by default. I mean when you import them
go to Properties of each trouble regvalue/key then Advanced Properties.
Select ComponentVSGUID and press New. This will generate non zero
ComponentVSGUID. And is you do this for all troubled values your problem
will go away.

Problem 2. Empty spaces (You were not aware of this)
Offline Files is imported as OfflineFiles.

So as you can see you must revisit each registry entry to see if it is named
ok and if not change it manually.

This will solve your problems.

Regards,
Slobodan
 
K

KM

Slobodan,

From my experience on the Problem #1, the bug is rather about key's unnamed or default values.

E.g., if you have in a .reg file being imported the following:
[HKEY_CLASSES_ROOT\lnkfile2\CLSID]
@="{00021401-0000-0000-C000-000000000046}"
Then XPe Reg Importer will create an empty value name (instead of ""). In other word, in the result SLD (or in TD Extra Registry)
you will get something like
Name="RegKey(819):"HKEY_CLASSES_ROOT\lnkfile2\CLSID""
instead of
Name="RegKey(819):"HKEY_CLASSES_ROOT\lnkfile2\CLSID","""

^^^^^^^^^^^^^

TD Build fixes this by setting up the "" string for empty reg.key name but it also throws the "Invalid registry data fixup"
warnings. But the warnings are not dangerous.

You can fix the warning either by creating a non-zero ComponentVSGUID for the broken registry entry, or just by setting the registry
value blank name (i.e. in "Edit Component Registry Resource" dialog, field "Value Name" type a letter then delete it and click "OK"
or "Apply" button).

--
Regards,
KM
Ah this refreshed my memory,

I was looking if I have reported this unwanted feature to MS. But I can't
find it in my outbox.

Nevertheless. You have two problems one reported by TD and one not reported
but serious.

Problem 1.
Named key values are not supported by default. I mean when you import them
go to Properties of each trouble regvalue/key then Advanced Properties.
Select ComponentVSGUID and press New. This will generate non zero
ComponentVSGUID. And is you do this for all troubled values your problem
will go away.

Problem 2. Empty spaces (You were not aware of this)
Offline Files is imported as OfflineFiles.

So as you can see you must revisit each registry entry to see if it is named
ok and if not change it manually.

This will solve your problems.

Regards,
Slobodan



Roberto Hofer said:
Hi Slobodan!

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile2]
@="Shortcut"
"EditFlags"=dword:00000001
"NeverShowExt"=""

[HKEY_CLASSES_ROOT\lnkfile2\CLSID]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\Offline Files]
@="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\{00021401-0000-0000-
C000-000000000046}]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\DropHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\IconHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\PropertySheetHandlers]


Just a short example. When I import the file above manually through
double clicking it, everything does fine. Just Target Designer has a
problem, when I import the .reg file into my component and build the
image. It isn´t that much of a problem to do it manually afterward,
but I do not understand the reason of this warning. Why am I not
allowed to define this reg data (or at least why does TD block it)?

Thanks in advance and best regards!

Roberto Hofer
 
K

KM

Then XPe Reg Importer will create an empty value name (instead of ""). In other word, in the result SLD (or in TD Extra registry)

Sorry, I meant here that Reg Importer will NOT create the ValueName property for default (unnamed) reg.key values.

Just to close the problem, I've updated XPeTools components to fix warning. If you import XPeTools.sld file into your database and
add "XPeTools" component to your Configuration. Then you will need to click "Fix up registry ..." button to get rid of the build
warnings. I'll ask Brad to update the component package on www.xpefiles.com.

Let me know if it does not work for you.

--
Regards,
Konstantin
Slobodan,

From my experience on the Problem #1, the bug is rather about key's unnamed or default values.

E.g., if you have in a .reg file being imported the following:
[HKEY_CLASSES_ROOT\lnkfile2\CLSID]
@="{00021401-0000-0000-C000-000000000046}"
Then XPe Reg Importer will create an empty value name (instead of ""). In other word, in the result SLD (or in TD Extra Registry)
you will get something like
Name="RegKey(819):"HKEY_CLASSES_ROOT\lnkfile2\CLSID""
instead of
Name="RegKey(819):"HKEY_CLASSES_ROOT\lnkfile2\CLSID","""

^^^^^^^^^^^^^

TD Build fixes this by setting up the "" string for empty reg.key name but it also throws the "Invalid registry data fixup"
warnings. But the warnings are not dangerous.

You can fix the warning either by creating a non-zero ComponentVSGUID for the broken registry entry, or just by setting the registry
value blank name (i.e. in "Edit Component Registry Resource" dialog, field "Value Name" type a letter then delete it and click "OK"
or "Apply" button).

--
Regards,
KM
Ah this refreshed my memory,

I was looking if I have reported this unwanted feature to MS. But I can't
find it in my outbox.

Nevertheless. You have two problems one reported by TD and one not reported
but serious.

Problem 1.
Named key values are not supported by default. I mean when you import them
go to Properties of each trouble regvalue/key then Advanced Properties.
Select ComponentVSGUID and press New. This will generate non zero
ComponentVSGUID. And is you do this for all troubled values your problem
will go away.

Problem 2. Empty spaces (You were not aware of this)
Offline Files is imported as OfflineFiles.

So as you can see you must revisit each registry entry to see if it is named
ok and if not change it manually.

This will solve your problems.

Regards,
Slobodan



Roberto Hofer said:
Hi Slobodan!

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile2]
@="Shortcut"
"EditFlags"=dword:00000001
"NeverShowExt"=""

[HKEY_CLASSES_ROOT\lnkfile2\CLSID]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\Offline Files]
@="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\ContextMenuHandlers\{00021401-0000-0000-
C000-000000000046}]

[HKEY_CLASSES_ROOT\lnkfile2\shellex\DropHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\IconHandler]
@="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile2\shellex\PropertySheetHandlers]


Just a short example. When I import the file above manually through
double clicking it, everything does fine. Just Target Designer has a
problem, when I import the .reg file into my component and build the
image. It isn´t that much of a problem to do it manually afterward,
but I do not understand the reason of this warning. Why am I not
allowed to define this reg data (or at least why does TD block it)?

Thanks in advance and best regards!

Roberto Hofer
 
R

Roberto Hofer

Thank you all, the trick with typing a letter into "Value Name" and
deleting it, fixed the warning.

Stupid TD! ;-)

Best regards!

Roberto Hofer
 
K

KM

Cool. Glad it solved the problem.

For future reference, I've updated the XPeTools components on the www.xpefiles.com (many thanks to Brad) so that later, especially
if you have a lot of broken registry entries, you could fix the issue with only click (I am too lazy guy :) ).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top