(installshield 2013 を使用)
私はソフトウェアをインストールするインストーラーを持っています。そして今、新しい shinny デバイス ドライバーをインストーラーに追加しています。注意点として、ドライバーは 32 ビットの Windows 7 マシンにのみインストールする必要があります。また、プラグ アンド プレイも利用したいので、インストール後にすぐに使用できるようにする必要があります。ただし、それを念頭に置いて、ソフトウェアを Win7-64 ビット マシンにインストールしてもまったく問題ありません。これは、社外で「公式に」サポートされているシナリオではありませんが、社内の開発者には必要です。
そこで、コンポーネントを追加して 32 ビット ドライバーとしてマークしました。ラップトップ (win7 64bit) にインストールしようとすると、 ERROR - You need to use the 64-bit version of DIFXAPP.DLL to install drivers on this machine.
Drat!が発生します。で次の条件を使用するように同僚から提案されVersionNT >= 601 AND NOT VersionNT64
ましたMSIProcessDriver
。これらの同じ条件は、コンポーネント自体では機能しないようです。これらの条件が機能するにはプロセスが遅すぎると言われました。同じ条件も追加する必要がありましたMSICleanUpOnSuccess
私のラップトップで動作するようにアップグレードを取得します。これが正しい解決策かどうかはわかりませんが、私にとってはうまくいき、インストールとアップグレードを行うことができます。そして、それが私の問題の始まりです。実際のハードウェアプラットフォーム自体では、一度インストールできましたが、インストーラーの別のバージョンをアップグレードまたはインストールすることはできません。アプリ自体は正常にインストールされますが、インストーラーは常に「中断」を返します. 私は次のことを得る
DIFXAPP: ERROR 0x65A creating MsiUninstallDrivers custom action for Win7Drivers
DIFXAPP: RETURN: ProcessDriverPackages() 1626 (0x65A)
CustomAction MsiProcessDrivers returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 15:04:33: MsiProcessDrivers. Return value 3.
MSI (s) (B8:58) [15:04:33:419]: Machine policy value 'DisableRollback' is 0
MSI (s) (B8:58) [15:04:33:419]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (B8:58) [15:04:33:419]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (B8:58) [15:04:33:419]: Calling SRSetRestorePoint API. dwRestorePtType: 13, dwEventType: 103, llSequenceNumber: 29, szDescription: "".
MSI (s) (B8:58) [15:04:33:419]: The call to SRSetRestorePoint API succeeded. Returned status: 0.
MSI (s) (B8:58) [15:04:33:419]: Unlocking Server
Action ended 15:04:33: INSTALL. Return value 3.
私がネットで収集した情報によると、これはおそらくインストールが不適切で、このドライバーのレジストリが不適切な状態になっていることが原因です。解決策を投稿せずに、他の人がこの問題に遭遇したのを見てきました。また、何をすべきか、またはテスト マシンを動作状態に戻す方法についても少し途方に暮れています。皆さんが助けてくれること、またはうまくいくことがわかった同様のシナリオの戦略を共有できることを願っています。
ps また、これを別の機能にして、 としてマークrequired
してNO
みました。失敗した場合 (ラップトップのように)、インストーラー全体が失敗することはないと考えています。ドライバのインストールに失敗した場合、ハードウェア プラットフォームでどのような動作が期待されるかわかりません。