我正在尝试为可以安装在 x86 或 x64 架构上的 Web 服务构建安装程序。作为我们服务的一部分,我们使用 SQLite3.dll,并且该 dll 是特定于体系结构的。我需要安装程序根据服务器的体系结构复制正确版本的 dll。这可能吗?如果是这样,怎么做?
谷歌搜索已经发现了一些关于镜像功能/组件集的复杂想法,但我不禁认为应该有一种更简单的方法来根据架构标志在一个源文件夹位置和另一个源文件夹位置之间进行选择。
我正在尝试为可以安装在 x86 或 x64 架构上的 Web 服务构建安装程序。作为我们服务的一部分,我们使用 SQLite3.dll,并且该 dll 是特定于体系结构的。我需要安装程序根据服务器的体系结构复制正确版本的 dll。这可能吗?如果是这样,怎么做?
谷歌搜索已经发现了一些关于镜像功能/组件集的复杂想法,但我不禁认为应该有一种更简单的方法来根据架构标志在一个源文件夹位置和另一个源文件夹位置之间进行选择。
正确答案很大程度上取决于您要完成的工作。
如果您只有一个整体 32 位软件包,恰好在与机器匹配的平台上提供了一个 DLL,您需要将它的每个平台变体放在不同的组件中,并调整这些组件,以便正确的一个是在运行时安装。有关您的条件的基础,请参见例如属性Msix64。
如果您尝试制作两个包,其中一个是 32 位并包含 x86 DLL,另一个是 64 位并包含 x64 DLL,您应该追求不同功能的镜像组件(因此您可以使用Release Flags排除您不需要的集合)和发布视图中的两种不同产品配置。或者,您可以创建两个镜像项目。
请注意,不建议仅使用路径变量覆盖来为同一组件选择不同的构建源,因为您生成的组件适用于不同的平台。这意味着他们应该使用不同的组件代码,尽管如果两个安装最终都在同一台机器上,这通常只是一个问题。