У меня есть установщик Visual Studio, который создает некоторые ключи реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
но ключи реестра, которые это создает, автоматически появляются под Wow6432Node:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyApp
Как я игнорирую Wow6432Node при создании ключей реестра в моем коде C#, выполняемом msi?
К вашему сведению, .NET 4.0 поддерживает это изначально. Пример:
RegistryBase = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
Затем вы можете использовать эту переменную RegistryBase для доступа ко всему в 64-битном представлении HKLM. И наоборот, Registry32 позволит 64-битному приложению получить доступ к 32-битному представлению реестра.
Взгляните на http://www.pinvoke.net/default.aspx/advapi32/regopenkeyex.html . Вам нужно будет использовать перенаправитель реестра и передать правильное значение для маски доступа. К сожалению, вам понадобится pInvoke.