在64位的系統,如由64位應用程序看到:
- System32下:包含64位的系統文件
- SYSWOW64:包含32個位系統文件
在64位系統上,如32位應用程序所示:
- System32下:典型地重新定向到SYSWOW64,所以訪問32位系統文件
- SysNative:重定向到真實System32下;訪問64位文件
在64位系統上,禁用文件系統重定向(見IntallScript的WOW64FSREDIRECTION
或Windows的Wow64DisableWow64FsRedirection
)如果你碰巧有到System32文件夾的路徑,它將訪問的64位文件。
Regasm不在此位置;相反,32位版本位於Windows\Microsoft.NET\Framework\<version>
,而64位版本位於Windows\Microsoft.NET\Framework64\<version>
。這裏沒有奇怪的文件夾名稱,但它不是系統文件夾。
注意: 註冊文件需要正確的位數和正確的應用程序。此外,如果你正在創建一個Windows安裝程序包(例如一個基本的MSI項目),你不應該在安裝時調用這樣的工具;你應該使用像COM提取這樣的構建時工具來處理本地的DLL,而使用COM Interop來處理被管程序集來將它們的自注冊轉化爲MSI數據:正確地標記組件的64位設置,並且InstallShield應該處理其餘的部分。
Syswow64 regsvr32應該可以工作。您可能必須以管理員身份運行。我通常使用VS Developer命令提示符。 [here](http://stackoverflow.com/questions/1163503/what-is-difference-bw-regasm-exe-and-regsvr32-how-to-generate-a-tlb-file-usi)是一個鏈接regsvr32和regasm之間的差異 – alykins 2014-10-02 20:05:44
但我在一個鏈接中看到Syswow64是註冊32位dll的。命名約定混亂了。 – 2014-10-02 20:50:32
你試過了嗎? – alykins 2014-10-03 12:25:19