2

VS2005 でセットアップと展開のプロジェクトを作成しました。インストールするファイルの 1 つは、SQLite データ ファイルです。

ソフトウェアの新しいバージョンをリリースしようとしていますが、既存のインストールで更新を実行すると、データ ファイルが上書きされることがわかりました。

セットアップ プロジェクトに更新されたデータ ファイルがあるので、既にインストールされているものよりも新しいですが、上書きしたくありません。

そのファイルの Permanent プロパティを True に設定しようとしましたが、役に立ちませんでした。

助言がありますか?

4

3 に答える 3

1

わかりました、これが私が使用した回避策です:

  • 私のセットアップ プロジェクトでは、空のデータベース ファイルの名前を Database.db から Database-blank.db に変更しました。
  • 私のアプリでは、Database.db が欠落しているかどうかを確認し、欠落している場合は Database-blank.db を Database.db にコピーしています。
  • 次に、既存の Database.db をロードするだけです

このようにして、データ ファイル (Database.db) のローカル コピーが新しいバージョンのソフトウェアに置き換えられないようにすることができます。

于 2009-08-28T08:13:12.370 に答える
0

MSI では、アップグレード テーブルにレコードを作成し、これがアップグレード インストールであるかどうかを判断し、アップグレード インストールである場合はプロパティを設定するのが最善の方法です。次に、データ ファイルをcomponentに配置し、コンポーネントに条件を配置します。または、 AppSearch テーブルにエントリを作成し、 ( DrLocator テーブルを介して) ファイルの存在を確認します。

Setup & Deployment プロジェクトがこれをサポートしているかどうかはわかりません。したがって、フォールバックとして、ファイルを別の名前でインストールし、条件付きでファイルをコピーするカスタム アクションを作成します。

于 2009-08-26T09:14:09.863 に答える
0

プログラムをアップグレードするときの VS2005 セットアップは、最初にインストールされた元のインスタンスを削除してから新しいインスタンスをインストールするため、ファイルは毎回削除されます。

ファイルの置き換えや上書きを避けるために、次のことをお勧めします。 1- セットアップ プロジェクトでファイルを読み取り専用としてマークします。2-セットアッププロジェクトでファイルを永続的なものとしてマークします。

ファイルをアップグレードした後、ファイルは上書きされませんが、読み取り専用であるため、アプリケーションはこのファイルを処理できません。

于 2009-08-26T09:36:02.813 に答える