首页 > 解决方案 > 为 x64 和 x86 创建具有依赖项的安装程序

问题描述

我正在用 C# 开发一个应用程序,它有几个依赖项,其中一个在 32 位或 64 位中是不同的。

当我编译应用程序时:这是编译的结果

在 x64 和 x86 文件夹中,找到了相同的依赖项 (SQLite.Interop.dll),但是一个特定于体系结构的文件 (x86: 1223 KB, x64: 1575 KB)。

正如标题中所说,我想使用 Visual Studo Installer 为这个应用程序创建一个安装程序。

当我将程序输出添加到“应用程序文件夹”时,所有依赖项都会出现,除了 x64 或 x86 文件夹中的依赖项。如何根据计算机的体系结构添加这个著名的依赖项?如果我必须创建 2 个不同的安装程序,我如何才能将此依赖项添加到每个安装程序?

先感谢您 !

标签: c#visual-studiovisual-studio-2017windows-installerinstallation

解决方案


位数不同的处理器架构需要不同的软件包。64 位安装程序可以安装 32 位和 64 位组件,32 位安装程序只能安装 32 位组件。32 位安装程序在 64 位系统上运行,但 64 位软件包不在 32 位系统上运行。换句话说,您需要两种不同的安装程序,一种用于 32 位,一种用于 64 位。

文件包含:我不使用此项目类型(原因将在下面清楚说明),但您应该能够通过手动添加文件Right Click Project => Add => File...,然后编译两个单独的设置。

自定义操作:针对不同平台时,请注意自定义操作的位数问题。我通常使用 32 位代码构建自定义操作。


部署工具 Visual Studio 安装程序项目有一些众所周知的限制。也许可以快速查看其他常用工具(不同部署工具功能的简要总结)。

单一来源高级安装程序做了一些奇特的事情,允许用一个来源定位两种架构。老实说,我不太确定他们做了什么。Installshield 有类似的结构。WiX 可以使用编译器变量/预处理器构造(底部)来实现相同的目的。


链接


推荐阅读