3

InstallShield MSI インストールの典型的な「アップグレード テーブル」には、「任意のバージョンから現在へのアップグレード」と「現在から任意のバージョンへのダウングレード」の 2 つのレコードが含まれます。これには、メジャー、マイナー、またはビルド番号が変更されるたびに「現在のバージョン」番号を手動でコピーして貼り付ける必要があり、あまり良くありません。

現在、.ism プロジェクト ファイルを解析し、ビルド前にアップグレード テーブルのバージョン番号を置き換えるスクリプトを使用しています。しかし、これは汚いハックです。アップグレード テーブルで "ProductVersion" MSI プロパティを使用できるので、製品バージョンはこのプロパティにのみ格納されるのでしょうか? [ProductVersion]このプロパティ名をやなどの複数の方法で入力しようとしまし##ProductVersion##たが、何も役に立ちません。プロパティ値に置き換えられず、結果の MSI には「1.30.1264」プロパティ値ではなく「##ProductVersion##」テキストが含まれます。

4

1 に答える 1

7

新しいプロジェクトには、説明したように動作することを目的とした 2 つのレコードが含まれている必要があります。ただし、実際の製品バージョンを保存する代わりに、マーカー トークンを保持する必要があります***ALL_VERSIONS***。このトークンの名前は良くありません。実際には、現在の ProductVersion がビルド時に置き換えられるからです。

トークンを実際のバージョンに既に変更している場合は、実際のバージョンの代わりに「自分のバージョン」を参照するラジオ ボタンを選択して、「わかりやすい」ビューに戻すことができます。または、新しいプロジェクトを作成して表示し、コピーすることもできます。トークンは、InstallShield の最近のすべてのバージョンで最小フィールドまたは最大フィールドで機能します (ただし、一部の古いバージョンでは最大フィールドでのみ機能します)。

于 2013-02-13T13:12:49.387 に答える