InstallShield では、「新しいバージョンより新しい日付」ルールでファイルを上書きできます。Advanced Installer でそのような機能を実装することは可能ですか? ありがとうございました!
3 に答える
特に「等しいバージョン」の問題に対する、私による新しい回答。
可能な 2 つのアプローチ:
最初のアプローチ: テスト! 少なくともセットアップを出荷する前に、インストール結果をソースと比較してください。常に良いお勧めです。次に、バージョン番号を増やすのを忘れた開発者を打ち負かし、「MSI は、クリーンなバージョン処理を要求しています。そうでない場合、ファイルは既存の古いバージョンに上書きされません。」これを行いました。動作しました。(最初のバージョンでは必要ありませんが、アップデートでは必要です。)
2 番目のアプローチ: プロパティ REINSTALLMODE を常に "e" と共に使用します。これは、常に既存のファイルをファイル バージョンで上書きすることを意味します (ファイル レベルのルールのみ)。たとえば、MSI にプロパティ " REINSTALLMODE " を値 " emus " でハードコーディングしたとします。これにより、たとえば修復のために「vemus」にする必要がある場合でも、オーバーライドすることができます。このプロパティをコマンドラインでのみ設定する方がクリーンですが、setup.exe またはその他のブートストラップが必要です。
この 2 番目のアプローチはより快適ですが、非常にクリーンなファイル バージョンの処理が失われています。あなたの会社の 2 つの異なるセットアップ (製品) に共有ファイルがあり、バージョン 1.0 の方がかなり古い場合、同じ V1.0 の「新しい」ファイルが上書きされます。
共有ファイルがない場合は機能します。しかし、セットアップ更新プロセスのバージョン管理に本当に依存しているため、たとえば、製品 1.1 (ファイルではない) を新しい製品バージョン 1.2 または 2.0 の上にインストールできないことを確認することがさらに重要です。
3 番目のアプローチ (後で追加):
MSI でメジャー アップグレードのみを作成し、たとえばパッチを作成せず、「新しいバージョンをインストールする前に古いバージョンをアンインストールする」戦略 (たとえば、InstallShield のデフォルト) に依存している場合、「通常」、ファイルを過剰にインストールする状況になることはありません。いくつかの条件が与えられた場合 (共有ファイルがない場合など)。あなたが専門家でない限り、これを行う場合はMSのマージモジュールを使用しないでください。
本当に良い代替手段はありません。
ここで、おそらく最良の答えから始めます。気にしないでください。MSI はここで非常に十分なデフォルト ルールに従っており、それらがケースに適合しない場合は、戦略を変更する必要がある可能性があります。あなたの要件はベストプラクティスではない、危険である、矛盾があるなどです...
さらに詳しく説明するには:
1) ファイルにバージョンがある場合は、セットアップは気にしないでください。開発 (ビルド/CM) プロセスに注意してください。ファイルがコンパイルされるたびに、ファイルのバージョンがより高く設定されるようにするのが最善です。奇妙なことに、その単純な目標を達成する企業は(あまりにも)少ないのです...
2) Windows インストーラー ファイルに含まれるファイルの最終変更日は、MSI では重要ではありません。これは非常に適切な決定です。日付は、通常、非常に悪い識別器です。最も興味深い例は、V1.0 のホットフィックスが V2.0 よりも新しい場合です。はい、古いバージョン ラインをサポートする必要がある場合があります。:-) だから、日付は忘れてください。経験則は次のとおりです。通常、バージョン管理されていないファイルは上書きされます (最初に知る必要のないいくつかの明確な例外があります)。
3) より詳細に、問題は何か(問題がある場合)、またはデフォルトの動作以外で達成したいことを教えてください??! たとえば、「同じバージョン」またはセットアップ後にユーザーが編集したファイルを上書きする際に問題がありますか?
--
4) 完全な詳細情報 (興味がある場合のみ): MSI では、ファイルの上書き規則はすべてのファイルに対してグローバルです。これは、「古い」セットアップ/スクリプト開発者にとっては少し恐ろしいことですが、機能します。習慣を少し変更する必要があります。
高度なインストーラーは MSI (Windows インストーラー) の GUI ラッパーにすぎないため、最初に MSI を少し理解する必要があります。
「ファイル バージョン管理ルール」と呼ばれるMSDNでの MSI ファイルの上書きの全体像を次に示します 。
いつものように、MS は MSI ドキュメントで非常に正確な仕事をしています。これは、MSI で最高のものの 1 つです.. (内部の冗談)。
そのリンクのすべてのサブセクションを読むと、ほとんどの人にとって非常に複雑に思えます。一度理解すれば、いつものように簡単です。