お盆だと言うのに、墓参りもせずに会社で開発中のシステムのインストーラをVisualStudioで作ってます。
インストーラって、全体的なテストのタイミングか、納品のタイミングでしか作らないので、ついついどうやって設定していけば良いか忘れてます。
今回は、新しい事を発見した。
System.Configuration.Install.Installerを継承したクラスで、カスタム動作が作れる。
これは、
1.特殊な通信を行うドライバのDLLを呼び出す為に、Windowsの環境変数 PathにDLLのパスを追加。
2.通信用サービスが基本的に立ち上がっているので、そのサービス用iniファイルを書きかえれない。
対応は、
1.System.Environment.SetEnvironmentVariableで追加
2.Process.GetProcessesで取得したプロセス中の該当関連プロセスKillしてから、iniファイルを書き換え。
(本来は、コマンド発行して止めるべきでしょうがマニュアルがないのよね)
こんな事が、インストーラで出来るんだと思っていたら、一部はまったので書いておく。
「InstallStateが見つかりません」というエラーが表示される
まさにこれ!
カスタム動作のCommitだけを定義して、関連付けを行うと駄目っぽい。
Installの定義を作ってカスタム動作として関連付ければ問題なかった。
今回使って思ったのは、カスタム動作って便利!
ただ、コードを書いちゃうから、ちゃんと運用担当に引き継いで置かないと、修正して再リリースの時にわかりません!ってなること。
ちゃんとした所では、インストーラの動作についても設計書なりを記述するのだろうか?
そうそう、先日れいさんから教えてもらった、デフラグソフト「JKDefrag」はいい感じでした。
なにが良いって、ビジュアル的に整理されてる感を持てるから!
ソフトの起動が、早くなったかどうかとか、わからんけどさ