首页 / 知识
关于 Visual Studio 2008:如何让我的 VS2008 x86 安装程序在 x64 上安装 x64 程序集?
2023-04-15 06:02:00

How can I make my VS2008 x86 installer install x64 assemblies on x64?我正在使用 VS2008 安装程序(加上自定义 Orca 操作)为我的 .NET 产品创建安装程序。 我最近才发现我使用的第三方程序集之一是特定于 x86 的(因为它包含一些本机代码);因此,x64 客户在启动时遇到了关于程序集不适合其平台的错误。 我向这样的客户发送了此第三方程序集的 x64 版本的副本,并告诉他只需将其复制到现有的 x86 版本上即可。成功了,甜!所以现在我只需要让安装程序为我做这件事。 这实际上看起来很重要 :(。理想情况下,我只希望安装程序(应该是 x86,因为它可以在两个平台上运行)包含此第三方程序集的 x86 和 x64 版本,并安装适当的一。换句话说,我想要一个让我的用户生活更轻松的安装程序。 我以为我已经解决了这个问题,使用 MSI 条件语句等等。但显然不是……除非您指定"x86"或"x64",否则 VS2008 安装项目将无法编译。如果您指定 x86,它会给出一个编译错误,指出它不能包含 x64 程序集。如果指定 x64,则结果无法在 x86 计算机上执行。妈的! 以前一定有人遇到过这个问题。不幸的是,谷歌没有帮助,所以我求助于 StackOverflow! 当我在一年前研究这个问题时,我得出的结论是这是不可能的。值得注意的是,许多 Microsoft 提供的 MSI 文件都有不同的 x86 和 x64 风格——而且如果可能的话,他们可能只会提供一个文件。 如果我对您的理解正确,如果您在 x86 上安装,您想要复制一个文件,如果您在 x64 平台上安装,您想要复制不同的文件(同名)。 首先,您不能为 2 个不同的平台创建一个 MSI,因为 x64 MSI 根本无法在 x86 平台上运行,而 x86 MSI 将使用 WOW64 在 x64 平台上安装。 另一方面,您可以创建一个包含 2 个不同版本文件的 x86 MSI,并在安装期间选择性地复制相应的文件。 最简单的方法是使用 WIX (V3) 而不是内置的 VS2008 MSI 生成器。 WIX 让您可以更好地控制在客户机器上安装的内容和位置,能够为不同平台生成不同的安装程序,并提供完整的 MSBuild 支持作为额外奖励。 (有关更多信息,请参见 http://wix.sourceforge.net。) 如果您想知道 WIX 仍处于测试阶段,生成的 MSI 文件完全没问题,我还没有遇到过错误。 (而且我以开发设置项目为生。) 最后,您可以使用 VersionNT64 属性检查 x86 安装程序是否在 x64 平台上运行。如果该属性存在,则您正在运行 x64,否则您正在运行 x86。 希望这会有所帮助。 通过使用两个功能来选择性地包含两组文件(当然,在单独的组件中,使用它们的个性化文件标识符!),我取得了一些成功。 安装必须标记为 x32 才能同时安装在 x32 和 x64 上。它将始终安装到 x32 目录,并在很大程度上被视为在 WOW 下运行的 32 位应用程序。 使用 VersionNT64 属性,您可以确定是否存在 Windows 64 安装,并有条件地安装您需要的文件。 我不确定 VS2008 安装项目中有多少此功能可用 - 我正在使用其他一些商业工具以这种方式设置安装程序。当然,你也可以使用 Orca 来做这件事,尽管让它与商业工具一起工作并非易事,而且 Orca 更难。 |
最新内容
相关内容
linux安装执行命令?
linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第一,linux常用安装软件的命令1、)bin包,如jdk-1_5_0_05-linux-i58bin,linux虚拟机命令安装?
linux虚拟机命令安装?,系统,软件,工具,虚拟机,网络,状态,操作系统,命令,文件,按钮,linux用虚拟机怎么安装yum源_虚拟机配置yum源这里以centos7红帽子linux操作命令?
红帽子linux操作命令?,服务,系统,密码,环境,信息,通用,软件,状态,设备,命令,红帽linux如何开启sshd服务1、打开linux终端命令行,输入如下命令即linux安装执行命令?
linux安装执行命令?,系统,软件,网络,密码,官方网站,在线,工作,盘中,电脑,第一,linux常用安装软件的命令1、)bin包,如jdk-1_5_0_05-linux-i58bin,linux微信安装命令?
linux微信安装命令?,工具,手机,系统,认证,平台,管理,联系人,管理系统,电脑,首页,如何在Linux系统下运行微信Web开发者工具微信小程序注册 在微linux安装强制命令行?
linux安装强制命令行?,机器人,软件,工作,工业,系统,地址,电脑,生产,设计,状态,罗布斯(机器人操作系统)1、罗布斯(机器人操作系统)可以应用于各种linux日常操作命令?
linux日常操作命令?,工作,系统,地址,信息,命令,目录,基础,管理,操作,功能,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令创建自定义命令linux?
创建自定义命令linux?,工具,状态,命令,系统,代码,标准,数据,位置,电脑,材料,LINUX中,创建文件夹、文件命令及清除命令。1、创建文件夹mkdir命怎么给linux安装命令?
怎么给linux安装命令?,软件,系统,在线,名称,官网,发行,命令,检测,简介,信息,在Linux系统中安装和使用apt-file命令1、apt-get clean——这个命linux自定义命令行?
linux自定义命令行?,系统,工作,名称,百度,命令,管理,工具,位置,信息,终端,Linux基本命令行操作(一)1、linux系统常用操作命令linux系统常用操linux命令行安装应用?
linux命令行安装应用?,软件,系统,名称,官网,在线,管理,工作,信息,命令,目录,linux常用安装软件的命令最后依次输入以下命令:./configure --preflinux配置自定义命令?
linux配置自定义命令?,服务,系统,状态,策略,周期,地方,标准,新增,环境,工具,Linux:Python编写Linux自定义命令工具state是命令执行结果的状态,r