2016-05-03 12 views
0

InstallShield 2015を使用して、基本MSIタイプのインストーラを作成しています。 COM interop(Microsoft.InteropformsRedist.msi)経由で.NETフォームへのアクセスをサポートするサーバーインストール、ワークステーションインストール、およびサードパーティ(Microsoft)インストーラがあります。ワークステーションはMicrosoft.InteropformsRedist.msiをインストールする必要があります。サーバーはワークステーションをインストールする必要があります。個々にこれらのペアリングは機能しますが、サーバーがInteropformsRedistをインストールしたいワークステーションをインストールしようとすると、InteropformsRedistがインストールされていないように見えます。私はMSIのログにそれについて言及していますが、実際にはインストールされていないという明確な示唆はありません。 InteropformRedist.msiを手動で実行して解決したインストール後のエラーが発生しました。再帰MSIチェイン

ログにInteropformsRedistの最初の言及は、以下のようになります。

InstallShield 12:11:11: Extracting temp files for chained package Pkg1 to 'C:\Users\bmarty\AppData\Local\Temp\{88EF0570-B960-4DD7-BF2F-F942CE0C9EEE}' 
MSI (s) (70!C0) [12:11:24:671]: PROPERTY CHANGE: Adding IS_CHAINER_POST_COMMANDLINE property. Its value is '/l"C:\Users\bmarty\AppData\Local\Temp\MSI7fa2d.LOG" /qb /iC:\Users\bmarty\AppData\Local\Temp\{88EF0570-B960-4DD7-BF2F-F942CE0C9EEE}\Microsoft.InteropformsRedist.msi'. 
MSI (s) (70!C0) [12:11:24:671]: PROPERTY CHANGE: Adding ISChainPackageCommit property. Its value is 'C:\Users\bmarty\AppData\Local\Temp\{88EF0570-B960-4DD7-BF2F-F942CE0C9EEE}'. 
MSI (s) (70!C0) [12:11:24:671]: PROPERTY CHANGE: Adding ISChainPackageRollback property. Its value is 'C:\Users\bmarty\AppData\Local\Temp\{88EF0570-B960-4DD7-BF2F-F942CE0C9EEE}'. 
InstallShield 12:11:11: Extracting file 'C:\Users\bmarty\AppData\Local\Temp\{88EF0570-B960-4DD7-BF2F-F942CE0C9EEE}\Microsoft.InteropformsRedist.msi' for chained package Pkg1 
MSI (s) (70:EC) [12:11:24:672]: Doing action: InstallInitialize 
Action ended 12:11:24: ISChainPackagePrepare. Return value 1. 
MSI (s) (70:EC) [12:11:24:673]: Machine policy value 'AlwaysInstallElevated' is 0 
MSI (s) (70:EC) [12:11:24:673]: User policy value 'AlwaysInstallElevated' is 0 
MSI (s) (70:EC) [12:11:24:673]: BeginTransaction: Locking Server 
MSI (s) (70:EC) [12:11:24:674]: Server not locked: locking for product {11FD6005-8100-4B5C-85E6-C26BAD6C8696} 
Action start 12:11:24: InstallInitialize. 
MSI (s) (70:EC) [12:11:26:245]: Doing action: ISChainPackageRollback 
Action ended 12:11:26: InstallInitialize. Return value 1. 
MSI (s) (70:EC) [12:11:26:246]: Note: 1: 2205 2: 3: MsiPatchCertificate 
MSI (s) (70:EC) [12:11:26:246]: LUA patching is disabled: missing MsiPatchCertificate table 
Action start 12:11:26: ISChainPackageRollback. 
MSI (s) (70:EC) [12:11:26:249]: Doing action: ISChainPackageCommit 
Action ended 12:11:26: ISChainPackageRollback. Return value 1. 
Action start 12:11:26: ISChainPackageCommit. 
MSI (s) (70:EC) [12:11:26:250]: Doing action: AllocateRegistrySpace 
Action ended 12:11:26: ISChainPackageCommit. Return value 1. 
Action start 12:11:26: AllocateRegistrySpace. 
MSI (s) (70:EC) [12:11:26:251]: Doing action: ProcessComponents 
Action ended 12:11:26: AllocateRegistrySpace. Return value 1. 
Action start 12:11:26: ProcessComponents. 
MSI (s) (70:EC) [12:11:26:253]: Doing action: UnpublishComponents 
Action ended 12:11:26: ProcessComponents. Return value 1. 

それが実際にインストールされなかった理由をそこに兆候はありますか?この仕事をするためにいくつかのトリックがありますか?

+0

連鎖したmsiには独自のログ(msiロギングがオンになっていることを前提とします)では、おそらくその理由がわかります。 – yossiz74

答えて

0

リリースビューの[連鎖MSIパッケージ]領域を使用している場合は、MsiEmbeddedChainer tableを介して埋め込みチェインを使用しています。私はその限界について明確な文書を見つけたことはありませんでしたが、いくつかあります。あなたが見ている関連するものは、別のチェーンャーの中から埋め込みチェーンャーを起動しないということです。おそらくこれは、外部チェーンャーが後続のパッケージを持つ場合、トランザクションの所有権を再利用することを知らず、内部チェーンラーがトランザクションを解放(またはコミット)する前に行うことができないためです。これはphChangeOfOwnerEventの解説でロールバックを引き起こします。MsiJoinTransactionです。

私たちは経験から、外部またはブートストラップチェーンチェッカーの動作が奇妙であることを知り、組み込みチェーンチェッカーよりも推奨しています。 InstallShield経由でやりたい場合は、プレミア版のSuite/Advanced UIプロジェクトタイプが必要です。 (パッケージの1つを除くすべてが依存関係とみなされ、prqファイルからそれらをインポートした場合、Professional版のアドバンストUIプロジェクトの制限に適合します)

+0

プロジェクトタイプを切り替えることなく、インストールの最後にreadmeの起動方法と同様に別の実行可能ファイル(setup.exe)を起動する方法はありますか?それは新しい奇抜を導入するだろうか? – BlueMonkMN

+0

readmeアプローチは、uiシーケンスからのみ起動されるため、サイレントインストールはサポートされません。これは依存関係には適していない可能性があり、実行時にuacプロンプトが余分に表示される可能性があります。全体としては、より悪い経験です。 –

+0

システムコンテキストで延期され、他のsetup.exeが実行されたShowReadmeに似たカスタムアクションを作成したらどうなりますか? REMOVE <> "ALL"の場合にのみ、Execシーケンスの終わり近くに含まれます。 – BlueMonkMN