CE5 および WM6 で実行されるインストーラーにいくつかのカスタム アクションを追加しました。このインストーラーは正常に動作し、正常にビルドされます。ただし、1 つの煩わしさがあります。setup.dll はデバイスに展開され、このファイルは必要ありません。
setup.dll ファイル、MSDN、さらにはモバイル SDK の作成に関する Web サイトをいくつか読みました。それらはすべて同じ一連の手順を示しています。
- C++ dll プロジェクトを作成します。
- 出力の名前が setup.dll であることを確認します。
- cab プロジェクトで CE セットアップ DLL をクリックし、アプリケーション フォルダを参照して、出力を追加し、セットアップ プロジェクトを選択します。(ローカル ディレクトリは選択できません。常にターゲット マシン上のディレクトリです)
これで動作し、カスタム キャブ インストーラが生成されます。ただし、前述のように、setup.dll はアプリケーション フォルダーにコピーされますが、インストール後には必要ありません (アンインストールの場合でも)。
プロパティで exclude を true に設定して、setup.dll を除外しようとしました。setup.dll としてビルドするための cab ファイルが欠落しているため、これにはファイルが含まれていないだけです。
そのため、私がたどり着いた唯一の解決策は、cab .inf ファイルを手動で変更することです。
[DefaultInstall]
CEShortcuts=Shortcuts
AddReg=RegKeys
CopyFiles=Files.Common1,Files.Common2,Files.Common3,Files.Common4
CESetupDLL="Setup.dll"
に
[DefaultInstall]
CEShortcuts=Shortcuts
AddReg=RegKeys
CopyFiles=Files.Common1,Files.Common2,Files.Common3
CESetupDLL="Setup.dll"
Files.Common4 は、マシン上でローカルに setup.dll ファイルを指していました。この変更を行うと、cab ファイルの作成に使用されますが、ファイルはコピーされません。
Visual Studio でこの変更を行う方法はありますか、それとも常に .inf ファイルを手動で編集し、cabwiz.exe を使用して cab ファイルを手動でビルドすることになりますか?