在安装过程中有条件地注册某些dll。(含糊不清)

在安装过程中有条件地注册某些dll。(含糊不清),dll,installation,compilation,registration,Dll,Installation,Compilation,Registration,我有一个在某些情况下会使用设备的应用程序(即打印机)。基本上,在一个办公室将使用此打印机,而在另一个办公室将永远不会使用此打印机 使用打印机的功能位于应用程序代码中,与打印机通信的dll在代码中引用。因此dll是installation.msi包的一部分 但是,如果先决条件(打印机的一组驱动程序,由制造商作为单个安装exe提供)未安装,则在安装过程中无法注册这些dll。驱动装置的安装尺寸约为50米 我不想在办公室的安装包中包含一个额外的50M文件,因为办公室永远不会使用打印机。这个问题可能的解决

我有一个在某些情况下会使用设备的应用程序(即打印机)。基本上,在一个办公室将使用此打印机,而在另一个办公室将永远不会使用此打印机

使用打印机的功能位于应用程序代码中,与打印机通信的dll在代码中引用。因此dll是installation.msi包的一部分

但是,如果先决条件(打印机的一组驱动程序,由制造商作为单个安装exe提供)未安装,则在安装过程中无法注册这些dll。驱动装置的安装尺寸约为50米

我不想在办公室的安装包中包含一个额外的50M文件,因为办公室永远不会使用打印机。这个问题可能的解决办法是什么

最终,我希望有一个选项,在安装过程中以某种方式跳过这些dll的注册。但我不知道如何处理这个问题

我想我可以在代码中有一个条件编译。但是,这将需要大量的工作来将与这种类型的打印机通信的代码与应用程序代码的其余部分完全分离


任何可能的解决方案?

将要有条件地安装/注册组件的DLL分组。然后在MSI的表中,使用Condition列依赖要设置的属性。在MSI中,配置行以查找先决条件并设置属性

您可以通过阅读了解更多信息:


将要有条件地安装/注册组件的DLL分组。然后在MSI的表中,使用Condition列依赖要设置的属性。在MSI中,配置行以查找先决条件并设置属性

您可以通过阅读了解更多信息:


您能稍微解释一下“将DLL分组为组件”部分吗?只是把它们放在一个单独的文件夹里,还是更多?至于其余的,周末后我会试一试。很好,我最近已经花了一些时间和虎鲸玩了。事实上,我已经玩过了。只是在“文件”中查找我的DLL,写下“组件”,转到“组件”,并将“条件”设置为1=0。你能解释一下“将DLL分组为组件”部分吗?只是把它们放在一个单独的文件夹里,还是更多?至于其余的,周末后我会试一试。很好,我最近已经花了一些时间和虎鲸玩了。事实上,我已经玩过了。只是在“文件”中查找我的DLL,写下“组件”,转到“组件”,并将“条件”设置为1=0。工作起来像个符咒=)