9

Visual Studio 2008 で MSI インストーラー パッケージを作成しました。問題は、インストール後に、インストールされたファイルのいずれかを削除した場合です。これは、インストーラー パッケージの意図した動作ではありません。マイ ファイルのインストール プロパティは次のとおりです。

PackageAs vsdpaDefault Permanent False ReadOnly False Register vsdrfDoNotRegister System False Transitive False Vital False

これが些細なことである場合は、ご容赦ください。Google に答えをあきらめさせることができなかったなんて信じられません。:)

4

3 に答える 3

10

Windows インストーラー展開テクノロジです。その役割は、指定されたファイルとレジストリ設定をインストールし、指定されたインストール場所に保持し、それらが正しいバージョンであることを確認することです。自己修復または回復力は、そのためのメカニズムです。その操作は、デバッグ、開発、およびテストのためにその場でファイルを交換する開発者の必要性と矛盾します。

開発者として、MSI を展開し、その場でファイルを削除または置換してデバッグすることに関心があるかもしれません。このような場合、MSI は作業を停止せず、正しいファイルを再インストールするため、煩わしい場合があります。これは「自己修復」と呼ばれ、非常に煩わしい場合があります。:-)。

これを回避するには多くの方法がありますが、MSI は非常に複雑です。「自己修復」は通常、"advertised shortcut"この MSI 機能を回避する最も簡単な方法から呼び出されるため、ショートカット経由ではなく、ファイル システムから直接 EXE ファイルを起動することです。これにより、最も複雑な EXE ファイルを除くすべての MSI 自己修復メカニズムがバイパスされます。自己修復をトリガーしない非通知のショートカットをデスクトップに手動で作成することもできます (右クリックして実行可能ファイルを押したままにし、マウスの右ボタンを押したままデスクトップにドラッグ アンド ドロップし、空の場所でボタンを離します)。をクリックし、[ここにショートカットを作成] をクリックします)。

レコードの自己修復は、キーパス検証の「自己修復エントリ ポイント」によってトリガーされます。これらには、宣伝されているショートカット、ファイルの関連付け、COM レジストリ データなどが含まれます。

自己修復、またはその正式名称であるレジリエンシーには他にも多くの機能があります。特定の問題を解決する方法を見つけるために、自己修復の問題に関するこの包括的な記事を確認してください。長い記事ですが、自己修復に問題がある場合は一読の価値があります。


2018 年 10 月の更新:

自己修復の詳細: 自己修復について誰もが知りたいこと:

  1. 自己修復 - 説明
  2. 自己修復 - 現実世界の解決策を見つける
  3. 自己修復 - 独自のパッケージでそれを回避する方法

リンク:

于 2011-05-12T20:20:19.677 に答える
2

私はこれについてパーティーに遅れていることを知っていますが、インストール後に変更する予定のファイルのコンポーネント定義に 'NeverOverwrite="yes"' を追加すると、自己修復が停止することがわかりました変更を取り消しています。

これで、私の自己修復の問題はほとんど解決されました。これを MSI 内のすべての構成ファイルとバッチ ファイルに追加しました。

于 2018-12-18T16:33:12.350 に答える
2

これは設計によるもので、「回復力」として知られています: http://www.msifaq.com/a/1037.htm

于 2011-05-12T19:30:18.803 に答える