アップグレードされたバージョンのインストール中にWindows 7インストーラパッケージエラー2869

StackOverflow https://stackoverflow.com/questions/5056887

質問

バージョン番号1.0.0.1を使用してアプリケーションがあります。これは、古いバージョン1.0.0.0へのアップグレードです。

新しいバージョンをインストールしようとすると 1.0.0.1、私のシステムにすでに古いバージョンがインストールされている場合は、 エラーを取得2869。

しかし、古いバージョンを手動でアンインストールしても、新しいバージョンをインストールしようとするよりも、それは正常にインストールされます。

新しいバージョンの製品コードを変更しました。しかし、アップグレードコードを変更しませんでした。

誰にも私にその理由を知らせてこれを修正しましょうか?

役に立ちましたか?

解決

In the MSI ProductVersion property only the first 3 fields are significant when comparing versions using the major upgrade logic. So in your case MSI will consider 1.0.0.1 and 1.0.0.0 to both be 1.0.0. FindRelatedProducts will therefore not detect this situation as an upgrade.

The way I approach this is to create a 'packed' version where the 3rd and 4th fields are combined into one using, say (4096*f3 + f4), but this will behove you never to have a 4th field (build number) greater than 4096, and a 3rd field no bigger than 15, since 0xFFFF is the maximum for a version field.

This allows us to perform major upgrades between individual nightly builds, not just service packs, without requiring a bootstrapper to achieve a minor upgrade, and we can have a new productcode for every build so there's no need to have to remember to update it manually when the need arises.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top