如何:为 64 位平台创建 Windows Installer

使用 Visual Studio 中的部署工具可以创建 64 位应用程序和组件的安装程序。 部署项目的 TargetPlatform 属性 确定安装程序的目标是 32 位平台还是特定的 64 位平台。 目标平台为**“x86”(32 位平台)、“x64”(支持 AMD64 和 EM64T 指令集的计算机)以及“Itanium”**(64 位 Itanium 处理器)。

此外,文件系统编辑器中有三个特殊文件夹:对于 64 位应用程序,“Common Files (64-bit)”“Program Files (64-bit)”“System (64-bit)”是本机文件夹;“Common Files”、**“Program Files”“System”**是 Windows on Windows 文件夹。

通常,32 位和 64 位 Microsoft Installer (MSI) 包的处理方式是一样的,只是 Windows Installer 处理文件夹变量(如**“[Program Files]”“[System Folder]”**)的方式以及将组件写入注册表或 GAC 的方式有所不同。 创建的 32 位或 64 位 MSI 包在 GAC 中安装时,会在 .NET Framework 程序集的强名称标识中注明处理器架构。 在 32 位计算机上也可以创建 64 位计算机的安装项目。

64 位 MSI 包可以支持 32 位和 64 位 DLL 或 EXE 以执行自定义操作;但是 32 位 MSI 包无法支持 64 位 DLL 或 EXE 以执行自定义操作。

每次向合并模块项目添加文件或程序集时,都会进行扫描以确定是 32 位目标平台还是 64 位目标平台。 这是为了确保 64 位合并模块不包含 32 位和 64 位混合代码。 如果合并模块包含 32 位文件,则 Visual Studio 将使用消息进行通知,并且不添加文件。 如果添加标记为仅 32 位的托管程序集,您将收到生成警告,但该文件或程序集将包括在目标安装中。

若要将 .NET Framework 应用程序发布到 32 位和 64 位两种平台上,可生成两个 MSI 包,一个用于 32 位计算机,另一个则用于 64 位计算机。 用户可以安装 32 位安装项目包,但程序极可能作为 64 位应用程序运行,则只有 64 位安装项目会安装到“Program Files64”目录。

如果要发布 MSI 包但不允许安装在 64 位计算机上,则添加一个新的启动条件,将它设置为“NOT VersionNT64”。

提示

在 Visual Studio 学习版中不能创建 64 位 MSI 包。

提示

如果 MSI 包的目标平台是 AMD Athlon64 或 Opteron 计算机,则必须安装有 Windows Installer 3.0 或更高版本。

提示

如果目标平台为 x86 的安装项目包括一个来自 64 位文件夹的文件,即使是在 64 位计算机上进行安装,该文件也不会包括在 MSI 包中。

创建 64 位平台的安装程序

  1. 打开部署项目。 有关更多信息,请参见如何:创建或添加部署项目

  2. 在**“解决方案资源管理器”**中,选择部署项目。

  3. 在**“属性”窗口中,选择“TargetPlatform”**属性。

  4. 为 Intel Itanium 64 位平台选择**“Itanium”,或者为任何其他 64 位平台(如 AMD64 和 EM64T 指令集)选择“x64”**。

    在安装时,如果目标计算机与指定的平台不兼容,则会引发错误并中断安装。

在 64 位平台上将文件安装到 Common Files、Program Files 或 System 文件夹中

  1. 在**“解决方案资源管理器”**中,选择部署项目。

  2. 在**“属性”窗口中,确保“TargetPlatform”属性设置为“x64”“Itanium”**。

  3. 在**“视图”菜单上指向“编辑器”,然后单击“文件系统”**。

  4. 在**“文件系统”编辑器中,选择“目标计算机上的文件系统”**节点。

  5. 在**“操作”菜单上,选择“添加特殊文件夹”,然后选择“Common Files (64-bit)”“Program Files (64-bit)”“System (64-bit)”**。

  6. 将所需文件添加到新文件夹中。 有关更多信息,请参见如何:在文件系统编辑器中添加和移除文件

请参见

任务

如何:创建或添加部署项目

如何:在文件系统编辑器中添加和移除文件

如何:向部署项目中添加合并模块

参考

TargetPlatform 属性

概念

部署 64 位应用程序

64 位应用程序

其他资源

部署任务和演练