0

これはかなり単純なはずですが、私には理解できないようです。数十個のイメージ ファイルを (SQLite ファイルと共に) パッケージ化し、プログラムのインストール時にそれらをユーザーのコンピューターにコピーするセットアップ プロジェクト (VS2010) があります。これらは本質的に「ストック」イメージであるため、ユーザーがそれらを削除しても問題ありません (プログラム内から削除する機能があります)。ただし、これらのイメージの 1 つまたは複数を削除した後、次にプログラムを起動すると、 「Windows インストーラー」ダイアログ ボックスが表示され、残りのデータ ファイルがすべて削除されます。

私が考えているのは、プログラムが不足しているファイルを認識し、インストールが破損していると想定し、何らかの回復/アンインストール モードに入ろうとすることです。ファイルをインストールする必要があるが、ユーザーがいつでも削除できることをセットアップ プロジェクトで示す方法を知りたいです。

ファイル プロパティのいくつかの組み合わせを試してみましたが、希望どおりの結果が得られないようです。車輪を再発明し、カスタム アクションを介してこれを行う必要がありますか??

編集: Transitive と Vital の両方が True に設定されていました。それらを False に設定すると、プログラムは再起動後に削除された画像を再度追加します! 答えが得られない場合は、おそらくカスタム アクションを使用します。

4

1 に答える 1

2

ファイルの関連付けまたはアドバタイズされたショートカットを使用する場合、Windows インストーラーはコンポーネント キー パスが欠落しているかどうかを自動的にチェックします。キー パスが見つからない場合は、コンポーネントを再インストールするための修復がトリガーされます。

ほとんどの場合、インストーラーの修復プロセスにより、他のファイルが削除されます。

解決策は、コンポーネントを Windows インストーラーに登録しないことです。これは、null コンポーネント GUID を使用して行われますが、Visual Studio セットアップ プロジェクトではサポートされていません (ただし、他のほとんどのセットアップ ツールではサポートされています)。

もう 1 つの解決策は、イメージ ファイルがコンポーネントのキー パスでないことを確認することです。これも Visual Studio ではサポートされていません。

より細かく制御できるセットアップ オーサリング ツールを使用する場合は、次のリストを参照してください: http://en.wikipedia.org/wiki/List_of_installation_software

于 2012-06-07T07:09:46.533 に答える