目的:1台のマシンに複数のインスタンスがある可能性のあるWindowsサービスをサポートするには、セットアッププロジェクトを使用して、次の機能を備えたMSIを作成します。
- サービス名のユーザー入力を受信する
- インストールサービス
- サービス名を1からシリアル化する(適切な名前をロギングとアンインストールで使用できるようにするため)
私の最初の望みは、App.configでサービス名を設定することでした(そして、ServiceInstallerのインスタンス化時にアンインストール中にそれを取得します。インストール中にアクセスできないため、これは単純なようです。
MyInstallerがInstallerを拡張する場合、base.Install();を呼び出すことができます。ただし、app.configに書き込もうとすると(MyInstaller.Install()内およびbase.Install()の後)、効果がありません。
そのため、サービスはカスタムサービス名でインストールできますが、その名前はシリアル化されておらず、アンインストール時にインストーラーが最も不快になります。
これはどのように行う必要がありますか?