Acces registru cu C # și „BUILD x86” pe un computer pe 64 de biți

Am o aplicație (scrisă în C #), care rulează pe un Windows Server 2008 (64 biți). În această aplicație trebuie să verific câteva chei de registru referitoare la IIS. Printre altele vreau să accesez cheia HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ Components \ WMICompatibility " pentru a verifica dacă modul de compatibilitate IIS 6 este activat sau nu. Pentru aceasta folosesc Registry.GetValue din Microsoft.Win32 .

Din anumite motive, soluția trebuie compilată cu x86 . Consecința este că nu mai este posibil să accesați HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp \ Components , dar este totuși posibil să citiți cheia din HKEY_LOCAL_MACHINE \ Software \ Microsoft \ InetStp . Când îl compilați cu „ AnyCPU ” - semnalizați accesul la registru funcționează bine.

Deci, care este motivul acestui comportament? Există o soluție sau soluție pentru această problemă?

7
задан Elmex 5 July 2011 в 11:36
поделиться