2

msi を使用して修復すると、レジストリ エントリが適切に再作成されます。Burn によって生成された exe を使用する場合、reg エントリに関連付けられた exe も比較を必要としない限り、エントリは再作成されません。

焼き込みが msi を呼び出すときに、msiexec のデフォルトの /fm 動作を上書きしているのではないかと思います。そのスイッチは、「必要なすべてのコンピューター固有のレジストリ エントリを修復する」ことを意味します。

その行動を確認、否定、または修正する方法はありますか?

4

1 に答える 1

2

Burn で「修復」操作を計画する場合REINSTALLMODEは、「cmuse」です。「変更」操作の場合REINSTALLMODEは「cmuso」です。したがって、「m」はどちらの場合にも存在します。

書き込みログ ファイルには「Planning action: Action」と表示され、どの処理を行っているかがわかります。修復操作を実行していて、マシン上に MSI が期待するよりも新しいバージョンの実行可能ファイルがない場合、Burn'sは機能するREINSTALLMODEはずです。「修復」を行っている場合は、生成された MSI ログ ファイルで同じ書き込みの実行を調べ、修復されていないコンポーネントのコンポーネントの状態を確認します。これは、コンポーネントが修正されなかった理由を追跡するのに役立ちます。

提供されたログ ファイルから:

Command Line: ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL=7 REINSTALLMODE=cmuse
REBOOT=ReallySuppress IGNOREDEPENDENCIES=ALL CURRENTDIRECTORY=C:\temp
CLIENTUILEVEL=3 MSICLIENTUSESEXTERNALUI=1

の欠如はそれをREINSTALL=ALL示していEnableFeatureSelection='yes'ます。その属性を削除する (またはデフォルトの「いいえ」に変更する) か、BA がOnPlanMsiFeature()コールバックを処理する必要があります。

于 2013-03-13T19:41:57.310 に答える