2011-06-04 52 views
1

我有一個用C#編寫的.NET組件,需要在HKLM配置單元下注冊一些註冊表值。我期望這個組件被安裝在運行適當Windows的x86(32位)和x64(64位)盒子上。在64位系統上,我想確保組件可以被32位和64位主機進程使用。我暫時無法使用Visual Studio的部署項目。可以從VS2010部署項目中手動編寫Wow6432Node條目嗎?

我想要的是,我的安裝程序在64位系統上運行時,將其註冊表條目置於HKLM/Software/Blablah之下,以便在64位進程中運行時,我的組件可以找到其全局配置設置。但是,如果我的組件是由在同一臺機器上運行的32位進程託管的,那麼它將從它認爲是相同的密鑰讀取,但是哪個Wow64將轉換爲HKLM/Software/Wow6432Node/Blablah。

是否確定來創作我的64位安裝程序,以便:

  • 它被標記爲64位安裝程序
  • 寫入HKLM/Software/Blablah下的條目爲64位的好處處理
  • 它在 HKLM/Software/Wow6432Node/Blablah下寫入這些條目的確切副本,以便在同一臺機器上使用32位進程。

我猜是因爲我已標記安裝爲64位,我將不得不專門編寫另一個單獨的安裝32位系統,只寫HKLM/Software/Blablah

回答

2

通常的做法是同時安裝32位和64位安裝軟件包。在32位機器上,你只需運行32位軟件包,在你運行的64位機器上。

試圖自己處理所有註冊表和文件重定向是一場噩夢,在64位計算機上安裝32位軟件包並讓系統爲您執行重定向會更好。無論如何,你必須爲32位機器生產32位軟件包,所以不需要額外的工作。