インストール中に、インストール日を含む暗号化された文字列を作成し、それをレジストリ キーに書き込みたいと考えています。
コードで暗号化された文字列を作成する方法を知っているので、暗号化の部分で助けは必要ありません。インストーラーを次のようにする方法がわかりません。
- 今日の日付を文字列として取得する
- その上で暗号化メソッドを呼び出します(dllから)
- 値がまだ存在しない場合は、結果をレジストリ キーに書き込みます (上書きなし)。
どうすればこれを行うことができますか?
デイブ
インストール中に、インストール日を含む暗号化された文字列を作成し、それをレジストリ キーに書き込みたいと考えています。
コードで暗号化された文字列を作成する方法を知っているので、暗号化の部分で助けは必要ありません。インストーラーを次のようにする方法がわかりません。
どうすればこれを行うことができますか?
デイブ
WiX や InstallShield など、基盤となる Windows インストーラーをさらに公開するツールを使用している場合は、時間を取得し、暗号化し、プロパティを設定する単純なカスタム アクションを記述します。次に、レジストリ テーブルのそのプロパティを使用して、インストーラーがインストール中にそれを書き出せるようにし、ロールバック中にそれを削除し、アンインストール中にそれを削除します。
ただし、使用している (および VS2012 FWIW から削除された) プロジェクト タイプは、即時実行コンテキストでのカスタム アクションの作成をサポートしていないため、カスタム アクションはレジストリ テーブルで使用するプロパティを設定できません。
つまり、RollBack、Install、および Uninstall カスタム アクションを自分で作成し、レジストリ値に自分で書き込む必要があります。
また、InstallUtil カスタム アクションにはさまざまな欠点があることにも触れておきます。これは C++ で行うか、WiX DTF を使用して、C++ DLL としてインストーラーに表示される C# カスタム アクションを記述します。