我将我的项目构建为64位(不是任何CPU),但特别是64位。 所有的dll都是64位;其中大多数是托管代码(C#),一些文件是非托管的(C ++代码)。
我在Installshield中创建一个安装程序,我需要注册dll' s。我在网上看了很多,以至于我很困惑。
答案 0 :(得分:3)
在64位系统上,由64位应用程序查看:
在64位系统上,由32位应用程序查看:
在64位系统上,如果您碰巧有System32文件夹的路径,则禁用文件系统重定向(请参阅IntallScript' s WOW64FSREDIRECTION
或Windows Wow64DisableWow64FsRedirection
),它将访问64位文件。
Regasm不在这个位置;而是32位构建在Windows\Microsoft.NET\Framework\<version>
中,而64位构建在Windows\Microsoft.NET\Framework64\<version>
中。这里没有奇怪的文件夹名称,但它不是系统文件夹。
注意强>: 注册文件需要正确的位数和正确的应用程序。此外,如果您要创建Windows Installer程序包(例如,基本MSI项目),则不应在安装时调用此类工具;您应该使用COM Extraction等构建时工具来处理本机DLL,使用COM Interop来管理程序集将其自注册转换为MSI数据:正确标记组件的64位设置,而InstallShield应该处理其余部分。