C# 针对x86和x64体系结构注册.msi(安装项目)
我正在为生物特征捕获应用程序构建一个安装项目 问题是,为了让它在用户的PC上工作,我需要在Regedit中注册.exe路径 正如您在下面所看到的,我已经通过定位“Program Files(x86)”文件夹实现了这一点,但在32位PC中它并不存在,因此,应用程序无法启动C# 针对x86和x64体系结构注册.msi(安装项目),c#,visual-studio,setup-project,regedit,C#,Visual Studio,Setup Project,Regedit,我正在为生物特征捕获应用程序构建一个安装项目 问题是,为了让它在用户的PC上工作,我需要在Regedit中注册.exe路径 正如您在下面所看到的,我已经通过定位“Program Files(x86)”文件夹实现了这一点,但在32位PC中它并不存在,因此,应用程序无法启动 如何使其同时适用于32位和64位体系结构?MSI安装不需要注册可执行文件 它只能将相关信息放入Windows注册表中 默认情况下,MSI安装程序将把所有文件放在单个根文件夹中(例如,MS Office将放在“C:\Progra
如何使其同时适用于32位和64位体系结构?MSI安装不需要注册可执行文件 它只能将相关信息放入Windows注册表中 默认情况下,MSI安装程序将把所有文件放在单个根文件夹中(例如,MS Office将放在“C:\Program files\Office”或类似的位置)。要配置目标安装文件夹,请使用 TARGETDIR属性是在安装过程中计算的(此外,用户可以覆盖它)。默认属性“[ProgramFilesFolder]”是x86位置,但它无处不在。属性“[ProgramFiles64Folder]”是您需要的,但它仅存在于x64操作系统上 那么,您需要什么:
- 查找将修补TARGETDIR的操作/步骤
- 在“ProgramFiles64Folder”(如果存在)之前添加操作/步骤以使用它
完成上述步骤后,应用程序将为x86/x64操作系统选择普通程序文件文件夹。MSI安装不需要注册可执行文件 它只能将相关信息放入Windows注册表中 默认情况下,MSI安装程序将把所有文件放在单个根文件夹中(例如,MS Office将放在“C:\Program files\Office”或类似的位置)。要配置目标安装文件夹,请使用 TARGETDIR属性是在安装过程中计算的(此外,用户可以覆盖它)。默认属性“[ProgramFilesFolder]”是x86位置,但它无处不在。属性“[ProgramFiles64Folder]”是您需要的,但它仅存在于x64操作系统上 那么,您需要什么:
- 查找将修补TARGETDIR的操作/步骤
- 在“ProgramFiles64Folder”(如果存在)之前添加操作/步骤以使用它
改用%ProgramFiles%。@HansPassant仍然假设安装在那里,使用MSI安装目录更好。改用%ProgramFiles%。@HansPassant仍然假设安装在那里,使用MSI安装目录更好。我有点困惑。您是否建议使用
ProgramFiles64文件夹
在64位Windows程序文件
中放置32位二进制文件,而不是程序文件(x86)
?虽然它在技术上可以工作,但这在很大程度上违背了操作系统的惯例。此外,我确信MSI可以设置其他注册表项,尽管我不太熟悉这样做。所以我不需要将它的注册表添加到包中?既然你说它应该自动注册密钥,那么这个项目有什么问题吗?@doutriforce,msi不需要任何可执行文件注册。但是,您可以通过“开始”菜单进行访问,或者注册文件以进行COM访问。尽管如此,要获得正确的目录,只需使用“ProgramFiles64Folder”。@ManushinIgor,我需要注册它。我正在从一个网站使用此应用程序,如果我没有注册它,当我尝试捕获指纹时,应用程序将无法启动。我用过[TARGETDIR],效果很好。@doutriforce,好的,没问题。所以我们只需要配置TARGETDIR。正如我所说,大多数说明都是关于另一个问题的。我只是重新写了一个想法:我们必须在OSIm中选择TARGETDIR文件夹。您是否建议使用ProgramFiles64文件夹
在64位Windows程序文件
中放置32位二进制文件,而不是程序文件(x86)
?虽然它在技术上可以工作,但这在很大程度上违背了操作系统的惯例。此外,我确信MSI可以设置其他注册表项,尽管我不太熟悉这样做。所以我不需要将它的注册表添加到包中?既然你说它应该自动注册密钥,那么这个项目有什么问题吗?@doutriforce,msi不需要任何可执行文件注册。但是,您可以通过“开始”菜单进行访问,或者注册文件以进行COM访问。尽管如此