【问题标题】:How to build InstallShield for .NET "Any CPU" App如何为 .NET“任何 CPU”应用程序构建 InstallShield
【发布时间】:2013-10-16 17:54:20
【问题描述】:

我正在 InstallShield 2012 Spring 中开发安装程序。

安装程序适用于在 .NET 中构建的应用程序,该应用程序构建为“任何 CPU”,这意味着它在 32 位计算机上运行 32 位,在 64 位计算机上运行 64 位。

我认为这意味着应用程序应始终安装到 Program Files 文件夹,而不是 Program Files (x86) 文件夹。我想不出一种方法将应用程序安装到 64 位 Program Files 文件夹,而不会使安装程序在 32 位版本的 Windows 上无法使用。

我尝试简单地将安装路径从 ProgramFilesFolder 更改为 ProgramFiles64Folder,但这会做任何事情,除非我也将组件设为 64 位并将安装程序设置为 x64。 (从而使安装程序成为 64 位 ONLY

知道如何让安装程序永远不会安装到 (x86) 文件夹还是我是 SOL?

【问题讨论】:

    标签: .net installation windows-installer installshield


    【解决方案1】:

    Windows 安装程序不支持“任何 CPU”。 MSI 必须标记为 x86 或 x64,并且只能分别使用 ProgramFilesFolder 和 ProgramFiles64Folder。即使您有尝试手动设置目标目录的自定义操作,Windows Installer 服务也会拦截路径并将其推回假设您的 MSI 编写错误并强制兼容。

    但这并不重要。位于 PF 32 位文件夹中的任何 CPU 编译的 EXE 仍将作为 64 位应用程序运行。

    如果它真的让你很困扰,你可以在我提到的那个自定义操作中使用一个简短的目录名称 (C:\Progra~1),并颠覆 MSI 试图“帮助”你的尝试。

    【讨论】:

      猜你喜欢
      • 2015-07-01
      • 2019-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多