Visual studio 2015 当我选择程序文件时,为什么我的服务安装项目要安装到程序文件(x86)?

Visual studio 2015 当我选择程序文件时,为什么我的服务安装项目要安装到程序文件(x86)?,visual-studio-2015,windows-installer,visual-studio-setup-proje,Visual Studio 2015,Windows Installer,Visual Studio Setup Proje,我正在使用VS2015为我的服务构建安装解决方案。 我希望程序以64位运行。 在解决方案配置属性中,我将所有项目作为配置调试、平台任何CPU、部署空白 msi安装程序要求我选择要安装的文件夹,然后我选择Program Files\My Company Name 但是,当我尝试在Windows 8.1 64位操作系统上安装时,安装程序会创建一个文件夹Program Files(x86)\My Company Name 为什么?很可能是因为您生成的MSI是32位MSI,只能访问。因此,操作系统会自动

我正在使用VS2015为我的服务构建安装解决方案。 我希望程序以64位运行。 在解决方案配置属性中,我将所有项目作为配置调试、平台任何CPU、部署空白

msi安装程序要求我选择要安装的文件夹,然后我选择Program Files\My Company Name

但是,当我尝试在Windows 8.1 64位操作系统上安装时,安装程序会创建一个文件夹Program Files(x86)\My Company Name


为什么?

很可能是因为您生成的MSI是32位MSI,只能访问。因此,操作系统会自动执行重定向

您可以使用免费工具Orca检查MSI包类型,该工具可以在Windows SDK中找到。MSI的包类型信息可在摘要信息菜单中找到。或者,您也可以生成详细的安装日志,您很可能会在其中找到有关路径重定向的信息

用于生成详细日志的命令行:

msiexec.exe/i/L*V

事实上,MSI的“任何CPU”都意味着您可以获得32位MSI,它可以在32位和64位机器上运行。可以想象,64位MSI无法安装在32位机器上

Windows Installer不支持混合MSI软件包。还有其他的安装创作工具,它们构建了一个EXE引导程序,捆绑了两个MSI,每个架构一个,并根据运行在上的操作系统启动正确的MSI


,如本节所述。与任何开发工具一样,还有其他选项,请参阅上面链接的SO线程。

每个体系结构都需要不同的软件包:

在Visual Studio安装项目中,体系结构位于TargetPlatform选项的属性窗口中(在解决方案资源管理器和F4中选择安装项目,而不是“属性”)。安装项目不遵循您在代码构建中做出的任何架构选择

使用ProgramFiles64Folder作为ApplicationFolder属性(正如Heath的文章所说)安装到本机ProgramFiles文件夹