-1

InstallShield プロジェクトのコピーを作成したので、すべての設定は同じである必要があります。(私は以前にこれを成功させました)。このコピーを使用してインストーラー プロジェクトに変更を加えます。これは、自動ビルド方法で呼び出されるためです。このバージョンのインストーラー プロジェクトで行った大きな変更の 1 つは、前提条件として共有ネットワークの場所を参照することでした。1 つの前提条件は、この前にビルドされ、メイン インストーラーに取り込まれる別のインストーラー プロジェクトです。

自動ビルド プロセスではなく、このビルドをローカルでテストしています。

アップグレード コードが一致することはわかっています。メジャー アップデートの 2 つのアップグレード コード チェックがあります。「任意のバージョン」の設定も確認します。

ただし、新しいインストーラーをビルドしてテストしても、以前のエントリは削除されません。

ここ [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall] を確認したところ、アプリが 2 回リストされていることがわかりました。UpgradeCode がなんらかの理由で台無しになっている場合に光を当てるために、サイコロではなく、UpgradeCode を見つけることを本当に望んでいました。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\installer] <- ダイスなし

一部の人が示唆したように、exe を参照してメジャー アップグレード項目を追加しようとしましたが、それでも同じアップグレード コードが表示されます。

だから私の質問は、追加と削除のダイアログからこのエントリを取得するのを妨げている可能性があることを確認する他の何かがあるかどうかです。

ログファイル

MSI (c) (D0:E0) [16:26:28:649]: Doing action: FindRelatedProducts
Action 16:26:28: FindRelatedProducts. Searching for related applications
Action start 16:26:28: FindRelatedProducts.
Action ended 16:26:28: FindRelatedProducts. Return value 1.

MSI (s) (2C:68) [14:12:34:706]: Doing action: RemoveExistingProducts
Action 14:12:34: RemoveExistingProducts. Removing applications
Action start 14:12:34: RemoveExistingProducts.
Action ended 14:12:34: RemoveExistingProducts. Return value 1.


Action start 13:48:41: ISSetAllUsers.
MSI (c) (6C:9C) [13:48:41:826]: Invoking remote custom action. DLL: C:\Users\ngates\AppData\Local\Temp\MSID938.tmp, Entrypoint: SetAllUsers
InstallShield 13:48:41: Begin SetAllUsers()
InstallShield 13:48:41: Getting records from Upgrade table
InstallShield 13:48:41: UpgradeCode: {84A5CBA6-9BC8-4E99-B8AE-9327E9B78A34} MinVersion:     MaxVersion: 6.38.0.448  Language:   Attributes: 257
InstallShield 13:48:41: Checking related product {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F}
InstallShield 13:48:41:     Venus 7000  {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F}  1033    6.38.0.372   ***Related***
MSI (c) (6C!E4) [13:48:41:854]: PROPERTY CHANGE: Adding IS_MAJOR_UPGRADE property. Its value is 'Yes'.
InstallShield 13:48:41: ALLUSERS of related product {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F} is = 1
InstallShield 13:48:41: End SetAllUsers()
Action ended 13:48:41: ISSetAllUsers. Return value 1.

ドキュメント(RemoveExistingProducts Action)によると、リターンコード1は何かが削除されたことを意味するように見えるため、動作しているように動作します...

4

1 に答える 1

-2

やり方わかった!

メジャー アップグレード アイテムで、2 番目のラジオ ボタンを選択します。そして、適切な範囲を設定します。私は 6.0.0.0 から 6.99.9.9 を実行しましたが、それでうまくいったようです。7.0.0.0 は私たちにとって真のメジャー リリースとなるためです。

于 2014-03-24T21:15:52.073 に答える