Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/installation/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation Wix安装程序-如何动态选择要在安装程序中发送的文件?_Installation_Wix_Windows Installer - Fatal编程技术网

Installation Wix安装程序-如何动态选择要在安装程序中发送的文件?

Installation Wix安装程序-如何动态选择要在安装程序中发送的文件?,installation,wix,windows-installer,Installation,Wix,Windows Installer,我们的产品可以选择连接到SQL、MySql和Oracle 我曾想过提供连接所需的所有DLL,而不管成员想要什么,但这会增加msi的大小。(使用ms build) 我可以在Wix中有某种类型的组,并且运行时根据参数选择要发送的DLL吗? 或者可能有多个.wxs文件(每个db驱动程序一个)和运行时决定选择哪一个?将不同数据提供程序的文件组织到不同的功能中。然后使用基于变量的预处理器语句从构建中包括或排除功能。最后将变量传递到WiX构建中进行评估。您还应该为不同的MSI提供唯一的ProductName

我们的产品可以选择连接到SQL、MySql和Oracle

我曾想过提供连接所需的所有DLL,而不管成员想要什么,但这会增加msi的大小。(使用ms build)

我可以在Wix中有某种类型的组,并且运行时根据参数选择要发送的DLL吗?
或者可能有多个.wxs文件(每个db驱动程序一个)和运行时决定选择哪一个?

将不同数据提供程序的文件组织到不同的功能中。然后使用基于变量的预处理器语句从构建中包括或排除功能。最后将变量传递到WiX构建中进行评估。您还应该为不同的MSI提供唯一的ProductName、ProductCode和PackageCode属性。可能是相同的升级代码。您可能还需要考虑安装程序中的检查,以确保每次只安装一个变量,除非您安装到不同的目录,并且组件通过设计完全隔离。 另外,如果这三个数据提供者是您唯一的变体点,那么我想您只有7个变体。您可能希望预先构建这些7,然后将内容发布到您的分销渠道


运行时描述应用程序行为。Buildtime和Installtime更适用。你想要哪个?@ChristopherPainter:),对,构建时间是我想要的。我们根据每个请求、每个成员构建安装程序。感谢回复。我想只有预处理器才能解决我的问题。在我的wxs中,如果有oracle的文件列表,然后是mysql的文件列表。我可以不使用包装oracle文件吗,IncludeOracle作为环境变量?看一看片段概念和Feature、FeatureRef、Component、ComponentRef、Directory和DirectoryRef的相关元素关系。其思想是将这些文件组织成一个片段wxs文件,并在要素元素周围放置一个if。如果计算结果为true,则会使用该功能,并遵循ref链将所有功能都拉入安装程序。