私は、いくつかのMSIをインストールするWiX Managed Bootstrapperアプリケーションを持っています。また、インストーラのさまざまな機能を実行する一連のテストもあります。私が抱えている問題は修復テストです。テストで意図的にインストールしたすべてのDLLが破損し、 "/ repair/passive"フラグを付けてEXEインストーラが呼び出されます。完了したDLLの約80%が修復されますが、残りのDLLは修復後も変更されずに破損しています。管理されたブートストラップからのWiX修復が、一部の破損したDLLの修復に失敗します。
インストールされているすべてのファイルを強制的に置き換えるようにMSIに指示するコマンドライン引数 "/ fa"を使用して個々のMSIで手動でmsiexecを実行すると、100%のDLLが修正されます。
私の質問はどのように私はこのように修復するには、各MSIを指示するMBAを強制することができますか?私は彼らの.wxsファイル内の個々のMSIの「amus」にREINSTALLMODEプロパティを設定しようとしましたが、このラインを介してログに明らかなようにMBAは、実行時にそれらを上書き:
PROPERTY CHANGE: Modifying REINSTALLMODE property. Its current value is 'amus'. Its new value: 'cmuse'.
私は」また、各MSIに渡すためにMBAのプロパティを設定しようとしましたが、それらを渡すように見えず、その代わりにデフォルト値が使用されます。
多くの類似の質問がありますが、実際にこの特定の問題に対処するものはありません。どんな助けでも大歓迎です。ロブは私を救う!
msiインストーラのログは、交換されていない? –
オペレーションの実行:ComponentRegister(ComponentId = {0B2B6D28-A32F-4BE8-B990-8DB2A4A790AA}、KeyPath = C:¥****¥estimator.dll、State = 3、ディスク= 1、SharedDllRefCount = 0、BinaryType = 1 ) –
オペレーションの実行:FileCopy(SourceName = ksncnr0g.dll | estimator.dll、SourceCabKey = fil46DA9182A232003B1FD10E3DF65EF686、DestName = estimator.dll、Attributes = 512、FileSize = 2220032、PerTick = 65536、VerifyMedia = 1 ,,,,, CheckCRC = 0、InstallMode = 59244544、HashOptions = 0、HashPart1 = -1917773179、HashPart2 = -1616579533、HashPart3 = -79796171、HashPart4 = -1442608125 ,,) MSI(A0:34)[12:25:25 :874]:ファイル:C:\ **** \ estimator.dll; \t上書きしません。 \tパッチは適用されません。 \t既存ファイルのバージョンは変更されていませんが、変更されました –