2016-03-23 16 views
-1

My Wixインストーラには、アップグレード中にのみ実行されるカスタムアクションがあり、キャッシュされたmsiのほとんどの条件を編集するためにexeを呼び出します。このカスタムアクションは、[既存の製品を削除する]の前に実行されます。インストーラーは、2012 R2を除くすべてのWindows環境でエラーなく正常に実行されます。Windows Server 2012 R2でインストーラが失敗する

Windows Server 2012 R2では、特定のカスタムアクションでインストーラが失敗し、エラー110がスローされます。インストーラを管理者として実行しようとしましたが、失敗しました。私はこの失敗の背後にある理由を知らない。どんな助けでも大歓迎です。

+0

エラー110件の手段は、「システムは指定されたデバイスまたはファイルを開くことができません。」これは、アンチウイルスから始まり、必要なネットフレームワークがインストールされていないことで終わる、多くのことが原因である可能性があります。このカスタムアクションでは正確に何をしようとしていますか? – yossiz74

+0

@ yossiz74はい私は110の意味を知っています。このカスタムアクションは正常にexe(ログから確認)を呼び出します。 exeは、アップグレード中にキャッシュされたmsiのいくつかの条件を編集することになっています。 2012 R2環境でアップグレードを実行すると、EXEがキャッシュされたMSIのデータベースを開くことができません。 – Ankit

+0

Ankit、どうやってこの問題を解決しましたか? –

答えて

0

キャッシュされたMSIを編集する必要は非常に珍しいことです。これは、基本的に、徹底的にテストすることなく、あなたが混乱して製品を出荷したことを意味します。私はアップグレードを実行する前に、顧客を幸せな状態にするためのスタンドアロンのユーティリティをリリースします。

本当に1ステップにしたいのであれば、MSIのsetup.exeをビルドし、メインMSIを起動する前にクリーナーを接続します。

1

インストールされた製品が壊れている場合、標準の解決策は、固定MSIを使用して製品を再インストール/再キャッシュすることによって、パッチ(msp)またはアップデートで修正することです。 「修正する」とは、明らかに、これらの条件でアップグレードが失敗する原因を修正することです。

それ以外の点では、問題はそのプログラムであり、どこで失敗したのかを正確に突き止めることです。 C#P/Invokeなど、MsiOpenDabaseを呼び出すかどうかはわかりません。特定のOSバージョンでコードが失敗する理由は最終的に問題であるため、動作していることと動作していないことを言うためのトレース機能が必要です。

このようなMsiOpenDatabaseと110の結果、たくさんのがあります。

Error 110 (open_failed) MsiOpenDatabase - error in the loop

+0

私は自分のコードでMsiOpenDatabaseを使用しています。 – Ankit

関連する問題