0

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

使用打印机的功能位于应用程序代码中,与打印机通信的 dll 在代码中被引用。所以 dll 是安装 .msi 包的一部分。

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

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

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

我想我可以在代码中进行条件编译。但这需要大量工作才能将与此类打印机通信的代码与其他应用程序代码完全分开。

任何可能的解决方案?

4

1 回答 1

3

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

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

http://msdn.microsoft.com/en-us/library/aa371564(VS.85).aspx

于 2009-02-20T04:45:14.753 回答