質問: C#でWindows Form Applicationを作成して実行ファイルを客先に以前リリースしました。そのプログラムはXMLをデータベースとして利用しております。 今回、プログラムに機能追加を行いました。exeのみの変更です。exeのみリリースして設置してもらう予定ですが、既に稼働している客先のXMLには変更を加える必要があります。 この場合は、普通どのような手段で行うのがよいのでしょうか?バージョンアップのパッチをリリースして、それを実行するとXMLの不整合の部分を修正してくれるようなものをイメージするのですが。。 追加: 今回の変更で、ユーザーがあるテンプレートを追加していく機能があるのですが、そのテンプレート上の最初から登録されている初期項目が追加となったのです。ですので、この新しい初期項目は、新しくテンプレートを登録する場合は追加されているのですが、今回の修正前に既に登録されたテンプレートに関しては、新しい初期項目は追加されません。それぞれのテンプレートに登録された項目の情報は、XMLに保存してあります。ですので、既存テンプレートの項目に新しい項目を追加したいというのが、今回の要望です。 exeのプログラムに、起動時などに毎回その初期項目が存在しないテンプレートがあった場合、初期項目を追加し、そうでなければ何もしない。というような処理を入れるしかないのでしょうか?
回答: 私の場合は、XMLにバージョン番号項目を埋め込んでその値からデータの修正が必要かを判断し処理する、という実装をしていました。 まだバージョン番号が存在しない場合は初期バージョンであると判断します。 基本的にアプリ起動時に毎回処理します。 新しい項目が追加されただけというのであれば、別の方法もあります。 データを読み込んだときに項目があればそれを返し、ない場合は既定値を返すようにします。 この方法ではXMLの修正の必要はありません。