在 64 位系统上,如 64 位应用程序所见:
- System32:包含 64 位系统文件
- SysWow64:包含 32 位系统文件
在 64 位系统上,如 32 位应用程序所见:
- System32:通常重定向到 SysWow64,因此访问 32 位系统文件
- SysNative:重定向到真正的 System32;访问 64 位文件
在 64 位系统上,禁用文件系统重定向(参见 IntallScriptWOW64FSREDIRECTION
或 Windows 的Wow64DisableWow64FsRedirection
)如果您碰巧有 System32 文件夹的路径,它将访问 64 位文件。
Regasm 不在此位置;相反,32 位版本在Windows\Microsoft.NET\Framework\<version>
,64 位版本在Windows\Microsoft.NET\Framework64\<version>
. 这里没有奇怪的文件夹名称,但它不是系统文件夹。
注意:注册文件需要正确的位数和正确的应用程序。此外,如果您正在创建 Windows 安装程序包(例如 Basic MSI 项目),则不应在安装时调用此类工具;相反,您应该使用构建时工具,例如用于本机 DLL 的 COM 提取和用于托管程序集的 COM 互操作,以将它们的自注册转换为 MSI 数据:正确标记组件的 64 位设置,而 InstallShield 应该处理其余部分。