0

場合によってはデバイス (つまり、プリンター) を使用するアプリケーションがあります。基本的に、あるオフィスではこのプリンターを使用し、別のオフィスではこのプリンターを使用することはありません。

プリンターを使用する機能はアプリケーション コードにあり、プリンターと通信する dll はコードで参照されます。したがって、dll はインストール .msi パッケージの一部です。

ただし、これらの dll は、前提条件 (単一のインストール exe として製造元によって提供されるプリンター用の一連のドライバー) がインストールされていない場合、インストール中に登録できません。ドライバのインストーラは約 50M サイズです。

プリンターをまったく使用しないオフィス用のインストール パッケージに余分な 50M ファイルを含めたくありません。問題の可能な回避策は何ですか?

最終的には、インストール中にこれらの dll の登録を何らかの方法でスキップするオプションが必要です。しかし、私はこれにアプローチする方法がわかりません。

コードに条件付きコンパイルを含めることができると思います。しかし、このタイプのプリンターと通信するコードを残りのアプリケーション コードから完全に分離するには、かなりの作業が必要になります。

可能な解決策はありますか?

4

1 に答える 1

3

コンポーネントを条件付きでインストール/登録する DLL をグループ化します。次に、MSI のコンポーネントテーブルで、[条件] 列を使用して、設定するプロパティに依存します。MSI のロケーター テーブルで、行を構成して前提条件を探し、プロパティを設定します。

これについては、以下を読むことで詳しく知ることができます。

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

于 2009-02-20T04:45:14.753 に答える