2012-04-25 68 views
0

我有一個始終在x86(XP)上運行的.NET 3.5應用程序。我現在需要這個程序在x64(Win7)上運行。該應用程序的構建是Any CPU,因此它應該在x64上運行。在我的設置項目>註冊表編輯器中,我在HKEY_LOCAL_MACHINE \ Software \ Company \ Product \ AppPath中創建一個名爲AppPath的註冊表項。爲任何cpu部署應用程序。閱讀HKLM註冊表

在64位機器我的設置項目,如果我改變我的設置項目上投放安裝在HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \公司\產品\ APPPATH

我的第一個問題,這個關鍵是到x64爲什麼註冊表鍵被添加到Wow6432Node子系統?如果我理解正確,則將x64定位到x64註冊表中而不是Wow6432Node子系統。顯然,我沒有完成所有必需的目標x64。我可能錯過了什麼,即使安裝項目具有x64的目標平臺,也會導致程序安裝爲32位。

我的第二個問題是,如果我有一些代碼讀取註冊表如下:

clientPbDir = Registry.LocalMachine.OpenSubKey("Software\\Company\\Product").GetValue("AppPath").ToString(); 

我怎樣才能使這項工作x86和x64的?

這篇文章回答了這個問題。

Reading the registry and Wow6432Node key

但我寧願不必編譯我的項目爲86只爲了能夠讀取x86和x64的註冊表,如果我能避免它。我希望能夠充分利用x64的性能。

回答