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