クライアントマシンにWindowsサービスをインストールするためのMSIがあります。 Windowsサービスは、サーバーのWebサービスを呼び出して操作を実行します。 最初は、MSIとWebサービスの両方が.NET 2.0フレームワークを使用して構築されました。MSIインストール時の.NET 4.0アップグレードエラー - XMLに予期しない属性エラーが含まれていません
最後の四半期では、システムを.NET 4.0にアップグレードしました。私たちのWebサービスはまだASP.NET、すなわちasmx(そしてWCFではなく)です。また、私はMSIのインストールの前提条件としてフレームワーク4.0を設定しました。
クライアントは、.NET Framework 2.0を使用していた、と彼のシステムにインストールされているMSIの古いバージョンを持っていた:
私たちのクライアントの一つは、この問題を報告しました。 MSIの.NET Framework 4.0バージョンをインストールしようとしたとき、フレームワーク4.0をインストールするように求められました(前提条件のため)。フレームワークのインストールが完了したら、彼はMSIをインストールしようとしましたが、このエラーが発生しました。誰かが私を解決に導くことができますか?必要に応じて詳細を提供することができます。
EDIT 1:より多くの研究で
、私はそれが私のAppName.installstateファイルで見つかりました。 Uninstallはこのファイルを削除しますが、アップグレードはそれを行いません。ファイルはインストールディレクトリにあります。近くに私はファイルの内容に "http://schemas.xmlsoap.org/soap/envelope/:Envelope"を見ることができます。任意のポインタは非常に高く評価されるだろう。
EDIT 2:
カスタムアクションは、インストールはAppName.installstateファイルおよびカスタムアクションのアンインストールファイルを削除し作成します。私の場合、私はこのファイルに何もしないMSIのアップグレードを行っています。 2.0と4.0(どちらも手動でインストールされている)のinstallstateファイルを比較すると、XML構文、スキーマと内容に大きな違いがあることがわかりました。その理由は、シリアル化エラーです。今、AppName.installstateがアップグレード時に上書きされない理由を知る必要があります。 googleの多くを行っているが、どこにも着陸しない。 MSIインストールログを見ましたが、有用な情報はありません。
Windowsインストーラ*はinstallstateファイルを生成しません。 Installerクラス/ InstallUtilカスタムアクション(サービス内) –