Office 2010 起分 32/64 位元。64 位元 Excel 可處理 2GB+ 大數據集,隨 64 位元 OS 普及、記憶體增大,64 位元使用者比例持續上升。但 32 位元 COM 元件無法載入 64 位元 Excel 進程,增益集必須針對目標位元編譯部署。
64 位元 Office 安裝後,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\<版本>\Outlook 下會有 Bitness (REG_SZ) 值:x86 或 x64。版本對應:14=2010, 15=2013, 16=2016+。
// 讀取範例
string keyPath = @"SOFTWARE\Microsoft\Office\15.0\Outlook";
using (var key = Registry.LocalMachine.OpenSubKey(keyPath)) {
string bitness = key?.GetValue("Bitness")?.ToString(); // "x64" 或 "x86"
}
regasm。
VS 呼叫 32 位元 regasm 註冊 64 位元 DLL 會報錯「非有效組件」。解法:在 建置事件 → 建置後事件命令列 指定 64 位元 regasm:
"%Windir%\Microsoft.NET\Framework64\v2.0.50727\regasm" "$(TargetPath)" /codebase /s
MyAddin.x86.dll、MyAddin.x64.dll。%Windir%\Microsoft.NET\Framework\v2.0.50727\regasm.exe、64 位元 %Windir%\Microsoft.NET\Framework64\v2.0.50727\regasm.exe。Bitness,決定複製哪組 DLL 並呼叫對應 regasm 註冊。關鍵三步:偵測位元 → 目標平台編譯 → 對應 regasm 註冊。建立雙位元部署套件並整合偵測邏輯至安裝程式,即可完整支援 32/64 位元 Excel 使用者群。