0

「最後の失敗時にピックアップ」機能が組み込まれた.Netで独自のソフトウェアインストーラーを作成した人はいますか?

たとえば、インストールで一連のファイルをコピーし、いくつかの DLL を登録し、データベース (MS SQL) をセットアップ/操作し、そのデータベースを使用するデータ駆動型 Web サイト (IIS) をセットアップするとします。

データベース操作の部分が失敗した場合は、インストール プログラムを終了し、問題を修正してから再実行します。このときのみ、インストーラーはファイルのコピーと DLL の登録をスキップし、データベースの作業を再開します。

確かに、インストーラーがプロセスを見つけて駆動できる独自の XML ログ ファイルを作成することもできますが、車輪を再発明するのではなく、確立されたパターンと慣行、または業界標準の方法があるかどうか疑問に思っています。

Web で「ソフトウェア インストールの履歴書」を検索したところ、もちろん、あらゆる種類の履歴書作成のヒントが得られました。誰でも提案できる、より正確なトピックのキーワードはありますか?

ありがとう、TimD

4

1 に答える 1

0

あなたのケースやこの機能が必要な理由はわかりませんが、最善のアイデアとは思えません。管理上の観点からは、インストーラーがアトミックに機能するのがとても気に入っています。インストーラーは成功するか失敗するかのどちらかで、システムに加えた変更を元に戻します。

そうすれば、インストーラーを再実行するときに、以前のコンポーネントが「取り残され」て問題が発生することを心配する必要がありません。理想的な世界では、既存のファイルを上書きするなどのプロンプトも表示されたくありません。アプリケーションにサードパーティの DLL のどのバージョンを使用すればよいかわからないためです。

したがって、SQL Server データベースのセットアップや操作などの場合、データベース ステートメントをトランザクション内で実行してからロールバックできるようにしたいと考えています。変更の程度によっては、データベースのバックアップを取るのがおそらく賢明ですが、それをアプリケーションに組み込む必要はないかもしれません。Red Gate ツールには、データ同期プロセスにバックアップを作成するためのステップが組み込まれているのが気に入っています。これにより、安全が確保され、プロセスがシンプルかつ合理化されたままになります。

これが私の推論です。インストールを実行して「MySite」と呼び、MySite と呼ばれるデータベースと IIS 仮想ディレクトリを作成し、そのインストールが失敗した場合、あなたの推論では、DB と IIS ディレクトリがぶら下がったままになります。私が管理者なら、インストーラーが既存の部分をきれいに処理するとは思いたくないので、次のインストール MySite2 を作成し、MySite の部分を手動で消去しようとします。

于 2009-11-20T17:02:12.420 に答える