WiX で構築された MSI の 1 つのダウングレード機能をテストしているときに、奇妙なことに気付きました。
MajorUpgrade要素のダウングレードを許可し、その要素をafterInstallInitializeにスケジュールしました (ただし、 afterInstallValidateで徹底的に試しましたが、同じ問題が発生しました。そのアクションの後にはできませんが、テストしようと思いましたそれ)。
多くのファイル (サービスの bin フォルダー内の DLL など) は、リリースごとに新しいバージョンになっています。したがって、ダウングレード先のバージョンには、下位バージョンのファイルが含まれています。ただし、これらのファイルはすべて、サービス EXE ファイルを除いて、ダウングレード中に正常にインストールされます。さらに、サービスは Windows にもインストールされません。
上記のすべてを考慮すると、この問題に 2 日間を費やし、多くの検索を行った後、私は途方に暮れているようです。
私はいくつかの希望を提供すると思われる2つのことを試しました:
1) REINSTALLMODEプロパティをamusに設定しようとしました。これにより、Windows サービスと共に EXE ファイルが確実にインストールされます。しかし、そのプロパティについて私が読んだほとんどのことは、それを使用することに対して警告しており、そのプロパティを設定するときに、パッケージをビルドするためにICE40を抑制する必要さえあります。MSI ファイルでこのプロパティを使用すると、どのような悪影響を見逃す可能性があるのか わからないため、これはすべて私にとって懸念事項です。
2)サービス EXE ファイルをマークアップするFile要素からKeyPath属性を削除し、代わりにその属性をComponent要素に配置すると、ダウングレード中にサービス EXE ファイルがシステムにインストールされますが、サービスはまだインストールされません。ウィンドウズ。これを調べたところ、サービスをインストールしたい場合は、 KeyPath属性がFile要素にある必要があるようです。ですから、この考えは役に立たないように思えます。
ヘルプやアドバイスをいただければ幸いです。ダウングレード機能を提供することで本当にできることがあります。
ありがとうございました。