問題タブ [major-upgrade]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
installshield - Installshield 2010: メジャー アップグレード中に OnInstalled Feature イベントを実行できますか?
Installshield 2010 で作成されたセットアップ プロジェクトがあり、パッチ デザインでメジャー アップグレードを作成したいと考えています。
- 製品バージョンを変更しました
- 商品コードを変更しました
- アップグレード表に行を追加
- パッケージコードを変更しました
- msi 引数行: REINSTALLMODE=amus REINSTALL=ALL IS_MAJOR_UPGRADE=1
ファイルは期待どおりにコピーされていますが、機能をアップグレードするときに、OnInstalled イベントで作成したイベントが実行されていないことに気付きました。機能が再インストールされているため、アップグレードでもこれらの機能を実行する方法はありますか?
よろしくお願いします。
wix - Windows サービスの WiX MajorUpgrade、.config の保持、および再起動の回避
MajorUpgrade、ServiceControl、.config ファイルをうまく連携させるのに苦労しています。 私の他の質問の後、私は今また反対の問題を抱えています。
以前は、AssemblyFileVersions が静的だったためにファイルが上書きされていなかったので、修正しました。 1)現在、既存のファイルの変更日がファイルの作成日とは異なり、キーパスとして設定されていてもSchedule="afterInstallExecute"
、KeyPath='yes'
.configファイルはまだ上書きされています。現在、 .configファイルを上書きして、インストール後にサービスを再起動する必要があります。
2)それを修正しても、再起動を回避するという問題がまだあります。私がそう言うならSchedule="afterInstallInitialize"
、.config ファイルは確実にサービスと共に削除されるのが早すぎると思います。私が言うとSchedule="afterInstallExecute"
、サービスは停止せず、インストール後に再起動が必要です。(そうですよね?) インストールの前にサービスを手動で停止すると、再起動を回避できます。カスタム アクションを追加するとnet stop
、私が推測するものを置き換えることができますServiceControl
が、すべての条件を正しく設定するのは複雑に思えます。
3)おまけとして、アップグレード中にサービスを削除したくありません。サービスを停止し、バイナリを置き換えて、サービスを再開することはできますか? これにより、アップグレードのためにサービス アカウントの資格情報を再入力する必要がなくなります。ただし、もちろん、最初のインストール時にインストールし、機能の削除時にアンインストールする必要があります。
これがその要点です(何らかの問題が発生した場合に備えて、後でバンドルされます):
関連するが未回答:
WiX バージョン 3.8.1128.0
wix - Wix 3.8 で MajorUpgrade を検出する
インストールが非常に小さく、ほとんどの場合、とにかくすべてのファイルが変更されるため、ソフトウェアのすべての新しいバージョンをメジャー アップグレードとしてインストールしています。
新規インストールと比較してアップグレードが行われた場合、インストーラーのダイアログを 1 つスキップしたいと思いますが、これまでのところ、次の例で使用する条件 (「Installed AND PATCH」など) を理解できていません。
wix - WiX インストーラー: アップグレード中の製品のバージョンを取得する
バージョン X からバージョン Y へのメジャー アップグレード中に、バージョン X がアップグレード中であることを示すプロパティ/変数が必要です。
WiX インストーラーによって構築されたセットアップで製品のメジャー アップグレードを実行する場合、アップグレードされているバージョン番号を取得する方法はありますか?
windows-installer - 一部のファイルの削除をスキップするように .msi を強制する
アップグレード時に一部のファイルを削除しないように .msi を作成したい。削除するファイルを追加できることはわかりましたが、.msi に対して「これを削除しないでください (アップグレード時)」と言う方法に関する情報が見つかりません。
誰かがそれを手伝ってくれますか?
wix - 既にインストールされている MSI のアンインストールの一部としてレジストリが削除されないようにするにはどうすればよいですか?
現在、MSI が運用されています (Broker.msi など)。インストールの一部として、MSI (Wix で定義) は新しいレジストリ キー (Broker) を作成し、その下に 2 つのサブキーを追加します。インストール後、ユーザーが製品を登録すると、「Broker」ノードの下に「Key3」というレジストリ キーが 1 つ追加されます。「Key3」には、製品の他のレイヤーからアクセスされる非常に重要な登録キーが含まれていることに注意してください。
[インストール & 登録後のレジストリ構造]
HKLM\ソフトウェア\マイクロソフト\ブローカー
Key1 (インストーラーによって追加)
Key2 (インストーラーによって追加)
Key3 (ユーザーが製品を登録するときに追加)
[Wix コード スニペット]
問題: これまでパッチ適用を使用していたため、アップグレードで問題が発生することはありませんでした。次のリリースからメジャー アップグレードに移行したいのですが、最大の課題は、メジャー アップグレード中に古い製品がアンインストールされることです。Wix スニペットによると、「Broker」レジストリ要素のアクション要素は「CreateAndRemoveOnUninstall」であるため、「Broker」ノード全体が「Key3」サブキーとともに削除されます。
アクションを「作成」に更新すると、問題は新規インストールで修正されますが、msi は既に運用されているため、既存の製品のメジャー アップグレードの一部としてレジストリが削除されないようにするにはどうすればよいですか?