問題タブ [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.
wix - ダウングレードを防ぐことはできません
以下の要件でインストールを試みました。
1. メジャー アップグレードを処理し、ダウングレードを防止する必要があります。
2. マイナー アップグレード/アップデートを処理し、ダウングレードを防止する必要があります。
3. パッチ適用可能で、ダウングレードを防止する必要があります。
もちろん、すべて同じパッケージに入っています
これまで、私は次から次へと障害にぶつかってきました。
FindrelatedProductsはメンテナンス モードでは実行されないため、upgradeversion タグでインストールされた他の製品を実際に確認することはできません。Pyro はパッチを作成するのを好まないので、 ProductCode= "*" を
持つことはできません。また、 https://www.firegiant.com/wix/tutorial/upgrades-and-modularization/
に従って構築されたダウングレードを防止しても、スイッチREINSTALL=ALLを使用してコマンドラインからインストールを実行しても実際には機能しないことに気付きました。およびREINSTALLMODE=vomus。スイッチがアップグレード バージョンの設定を無視しているようです。
私は何かを逃したと確信していますが、それを見ることはできません。これを達成する方法についてのヒントはありますか?
私のアップグレード要素は次のようになります
deployment - すでに展開されているファイルよりも古いバージョンのファイルを含む製品のアップグレードを展開するにはどうすればよいですか?
ファイル MyFile.dll をデプロイする msi コンポーネントがあります。私の製品が既にバージョン 09.99.99.99 の MyFile.dll を展開しているテスト マシンがあります。
現在、バージョン 05.23.76.123 の新しいバージョンの MyFile.dll を展開するメジャー アップグレードを作成しています。テスト マシンで実行した後、MyFilee.dll が削除されます。正しく展開するには、変更または修復する必要があります。
挿入されたバージョン番号に関係なく、MyFile.dll を強制的に展開するにはどうすればよいですか?
PS: これは、テスト マシンでのみ発生しています。ユーザーに提供した製品には、リリース履歴と一致するバージョン番号のファイルがあります。
wix - メジャー バージョンのアップグレード中に、wix インストーラーがマージ モジュール ファイルをダウングレードするにはどうすればよいですか?
マージ モジュールを使用するインストーラーがあります。マージ モジュールの最新バージョンには、一部のファイルのダウングレードが含まれています。インストーラーを使用して以前のバージョンからアップグレードする場合、これらのファイルをダウングレードする際に問題が発生します。
最初は、マージ モジュールのファイルが削除され、再インストールされませんでしたが、wix メジャー アップグレードを読んだ後、要素に設定Schedule='afterInstallFinalize'
したすべてのファイルがインストールされませんでした。MajorUpgrade
これにより、新しいバージョンのファイルが保持されました。
アップグレード中にこれらのファイルがダウングレードされるように、インストーラーまたはマージ モジュールを変更するにはどうすればよいですか?
wix - Wix/MSI - サイレント モードでのメジャー アップグレード
以前のバージョンからのアップグレードをサポートするインストーラーがあります。
このインストーラーを古いバージョン 4.2 で UI モードで実行すると、アップグレードは正常に機能します。しかし、/q を使用してサイレント モードで実行すると、メンテナンス モードで実行され、自身をアンインストールしようとします。
これはログの一部です:
...
...
両方のインストーラーの主な機能名は異なります。新しいバージョンの機能名を 4.2 と同じに変更すると、アップグレードはサイレント モードで動作しますが、同様のログで UI モードで動作しなくなります。リクエスト: ヌル。処置: Nullで、REMOVEをALLに設定してください。なぜそれがとても奇妙に振る舞うのか、何か考えはありますか?
wix - Wix メジャー アップグレード、新しいファイル バージョンに関係なくファイルを置換
私の WiX インストーラー (Wix 3.10、MSI 4.5) はMajorUpgrade
更新に使用します。インストールするファイルはheat.exe
ビルド前に収集されます。現在の (古い) msi ファイルには、ファイル バージョン、製品バージョン、最終書き込み時刻 を持つファイルnlog.dll
(NuGet パッケージに付属) が含まれています。v4.1.0
4.1.0.0
4.1.0
2015-09-01
nlog チームはいくつかの重大な命名の問題に遭遇したため、更新された NuGet パッケージ を公開しました。これには、製品バージョンが に増加した一方で、ファイル バージョンが に減少しv4.1.1
た更新プログラムが含まれています。最終書き込み時間はです。nlog.dll
4.0.0.0
4.1.1
2015-09-14
ロビーがここで行ったように、関連する問題が発生しています: wix メジャー アップグレードでは、すべてのファイルがインストールされません: 新しい msi パッケージをインストールしてメジャー アップグレードを実行すると、現在nlog.dll
(ファイル バージョンによっては新しいものですが、古いものです)ファイルの日付と製品バージョンによると) は削除されていますが、新しいnlog.dll
ものはインストールされていません。
ただし、Schedule="afterInstallExecute"
orSchedule="afterInstallFinalize"
を提案どおりに使用しても、うまくいきません。ロビーの場合のように、新しいファイルを削除して古いファイルをインストールしない代わりに、現在のファイルを上書きせず、その場所にそのまま残します。
簡単に言えば、ファイル/製品/アセンブリのバージョン管理に関係なく、インストーラーに付属のすべてのファイルを単純にインストールしてもらいたいのです。新しいファイルを古いファイルに置き換えることが望ましい場合があります。ファイルのバージョン/日付を無視するようにインストーラー エンジンに指示することはできませんか? そうでない場合、どのような選択肢がありますか?
wix - メジャー アップグレード中に、Wix が以前のバージョンの Burn exe を削除しない
Burn Bootstrapper を使用して wix exe を作成しました。メジャー アップグレードを実行しようとすると、新しいバージョンがインストールされます。新しいアップグレードで欠落している機能も、既存のフォルダー構造から削除されます。しかし、「プログラムの追加と削除」では、両方のインストールを見つけることができます。Bootstrapper プロジェクトの Bundle.wxs ファイルで、バージョンを 1.0.0.0 から 1.0.1.0 に増やしました。また、Setup プロジェクトの Product 要素のバージョンを 1.0.0.0 から 1.0.1.0 に増やしました。これらのファイルのいずれのアップグレード コードも変更していません。また、Setup プロジェクトの Product.wxs に Product ID の新しい GUID を作成しました。ここで何が間違っていますか?[プログラムの追加と削除] に以前のバージョンが残っているのはなぜですか? ご意見をお聞かせください。
以下は Bootstrapper プロジェクトの Bundle.wxs です。
以下は Setup プロジェクトの Product.wxs です。
以下は、インストーラー関連のアクションを処理するクラスです。
ログ ファイル 1 :
ログ ファイル 2:
visual-studio - Installshield 2012 に強制的にメジャー アップグレードを実行させるにはどうすればよいですか?
インストーラーが 1.7.211 から 1.7.212 に移行するときにマイナー アップグレードを実行していますが、常にメジャー アップグレードを実行したいと考えています。新しいインストーラーは、例外なく、以前のインストーラーがインストールしたすべてのものを常に上書きする必要があります。これを達成するために installshield プロジェクトを変更する方法はありますか?
installshield-2010 - InstallShield 2010 基本 MSI メジャー アップグレード エラー 2753
製品のインストールに InstallShield 2010 Basic MSI Project を使用しています。これで、以前のバージョンからのメジャー アップグレードを実行するためのメジャー アップグレード アイテムが作成されました。
プロジェクトには、サードパーティのコンポーネントを登録するEXEファイルがあります。これは、インストール、アンインストール中に異なるコマンドライン引数で呼び出す必要があります。
このための 2 つのカスタム アクション (CA: EXE、製品と共にインストール) を作成しましたが、これは以前のビルドでは正常に機能していました。
1) REGMYCOMP - インストール用 -遅延実行- InstallFinalize の前にシーケンス(状態:インストールされていない)
2) UNREGMYCOMP - アンインストール用 -遅延実行- RemoveFiles の前にシーケンス(条件: (REMOVE = "ALL") OR (IS_MAJOR_UPGRADE) )
メジャー アップグレード (MSIEXEC.EXE を使用して MSI を直接実行) 中にUNREGMYCOMP CA が失敗し、次のエラーが表示されます。
エラー 2753 ファイル 'xxxx.exe' はインストール対象としてマークされていません。
コントロール パネルの ARP エントリから製品をアンインストールしようとすると、同じことが起こります。
wix - WiX バンドル: バンドル 2.0.0 がインストールされている場合、1.0.0 のパッチが [プログラムと機能] から削除されない
3 つのバンドルがあり、コードは以下のとおりです。1.0.0、1.0.0.1、および 2.0.0。
1.0.0、1.0.0.1、および 2.0.0 がインストールされている場合、View Installed Updates にはまだ 1.0.0.1 がインストール済みとしてリストされます。最後のバージョンがアンインストールされるまでそこに残ります。
アップグレードが適用されると、以前のバージョンとパッチはすべて、[プログラムと機能] および/または [インストールされた更新プログラムの表示] から削除する必要があります。MSI/MSP を Bundler 経由ではなく直接インストールした場合とまったく同じです。