我正在運行爲AnyCPU編譯的C#應用程序。它訪問註冊表鍵並獲得它們的價值。如果密鑰不存在,它將使用默認值創建它。我正在使用函數Registry.LocalMachine.CreateSubKey(strRegistryPath)來執行此操作,其中strRegistryPath是\ SOFTWARE \ MyAppln。密鑰在32位機器上的HKLM \ SOFTWARE \ MyAppln中創建並正常工作。但是,當我嘗試在64位機器上使用相同的程序時,這些鍵將在HKLM \ SOFTWARE \ Wow6432Node \ MyAppln中創建。由於這個原因,我無法正確讀取這個值。如何讓我的應用程序訪問註冊表項,而不管它的32位或64位?
如何使我的程序在32位和64位機器上都能工作?
你*不*實際編譯您的程序爲AnyCPU。平臺的名稱與抖動是否強制以32位模式運行沒有任何關係。重要的*真實*設置是項目+屬性,生成選項卡,平臺目標設置。如果您看到「首選32位」選項,請將其關閉。重複發佈配置。 –
我使平臺目標爲AnyCPU。我看不到任何首選的32位選項。發佈配置我沒有得到你。仍然沒有工作。 @HansPassant –
什麼是「仍然無法使用?」請定義「不工作」。我敢肯定,我給你的答案允許你從32位進程寫入64位視圖,如果這是你想要的。然而,人們不禁要問,爲什麼你非常關心從32位進程寫入32位視圖。如果你的進程是32位,那麼32位視圖可能是寫作的地方? –