最近、いくつかのデスクトップ ショートカットの名前を少し変更する必要がある機能をインストーラーに追加しました (バージョン番号が名前に追加されました)。インストーラーが古いショートカットを新しいものに置き換えるのに問題があります。問題が最初に報告されたとき、新しいショートカットはインストールされていましたが、古いショートカットは削除されていませんでした。問題に取り組んだ後、私は複雑な問題を抱えています: 古いショートカットの 1 つが削除されています (これまでのところ、とても良い) が、もう 1 つは削除されていません (あまり良くありません)。どちらの場合も、新しいショートカットはインストールされていません (さらに悪いことに)。これらのショートカットをインストールする各コンポーネントの GUID を変更しようとしましたが、ある時点で、ショートカットを担当する各マージ モジュールの ProductCode プロパティを変更しようとさえしました。
関連するコンポーネントだけを再 GUID すると、インストール状態のログ ファイルが次のように表示されます (デバッグを容易にするために、コンポーネントの名前を少し変更して、古いビルドのものと古いビルドのものを区別できるようにしました)新しい):
...
MSI (s) (E0:70) [16:49:21:921]: Component: DesktopFolderX.04E48C43_FFCB_42AC_AC59_1D96BEC85C17; Installed: Absent; Request: Local; Action: Local
...
MSI (s) (E0:70) [16:49:21:921]: Component: DesktopFolderX.25696C3E_819B_4675_BEE2_C36D2B5CB521; Installed: Absent; Request: Local; Action: Local
...
MSI (s) (E0:C0) [17:02:18:390]: Component: DesktopFolder.25696C3E_819B_4675_BEE2_C36D2B5CB521; Installed: Local; Request: Absent; Action: Absent
...
MSI (s) (E0:C0) [17:02:18:390]: Component: DesktopFolder.04E48C43_FFCB_42AC_AC59_1D96BEC85C17; Installed: Local; Request: Absent; Action: Null
...
ログでわかるように、新しいショートカットはどちらの場合にも入るはずですが、そうではありません。また、インストーラーが 2 つの古いショートカットを使用して異なることを行っている理由を説明することもできません。
参考: 私の開発環境は Wise Installation Studio 7.0 です。
編集:現在の ProductVersion と ProductCode を除いて、すべてを以前のものにリセットしました。これを行うと、インストーラーは古いショートカットをインストールしたままにしますが、新しいショートカットはインストールしません。(これは、最初に報告され、複製できたものとは異なる動作です。つまり、古いショートカットがインストールされたままになり、新しい (名前が変更された) ショートカットもインストールされました。) 2 つの関連するコンポーネントを再 GUID した後、インストーラー古いショートカットは削除されますが、新しいショートカットはインストールされません。(これはXPで起こっていることです。)
コンポーネントを再 GUID した後のログの関連行は次のとおりです。
...
MSI (s) (80:EC) [10:48:31:091]: Component: DesktopFolder.25696C3E_819B_4675_BEE2_C36D2B5CB521; Installed: Absent; Request: Local; Action: Local
...
MSI (s) (80:EC) [10:48:31:091]: Component: DesktopFolder.04E48C43_FFCB_42AC_AC59_1D96BEC85C17; Installed: Absent; Request: Local; Action: Local
...
MSI (s) (80:0C) [11:04:22:882]: Component: DesktopFolder.25696C3E_819B_4675_BEE2_C36D2B5CB521; Installed: Local; Request: Absent; Action: Absent
...
MSI (s) (80:0C) [11:04:22:882]: Component: DesktopFolder.04E48C43_FFCB_42AC_AC59_1D96BEC85C17; Installed: Local; Request: Absent; Action: Absent
...
最初の 2 行は、新しいショートカットがインストールされていることを示しているようですが、まだインストールされていません。後で修復すると、新しいショートカットがインストールされます。
元の問題 (アップグレード後に古いショートカットと新しいショートカットの両方が存在する) が複製される可能性のあるインストーラーのコピーを実行すると、上記の最後の 2 行で報告されるアクションは、Absent ではなく Null になります。
編集 2:現在の動作では、古いショートカットがインストールされたままになり、新しいショートカットはインストールされません。コンポーネントを再 GUID すると、古いショートカットは削除され、新しいショートカットはまだインストールされていません。Christopher Painter のソリューションを試しましたが、どちらもうまくいきませんでした。(その回答に関する私のコメントを参照してください。)古いバージョンのないショートカットの代わりに、新しいバージョンのショートカットをインストールする方法が必要です。機能するソリューションを提供できる人はいますか?
編集 3:結局のところ、新しいショートカットがインストールされないという新しい動作は、ソース ファイルを取得する際に犯したミスが原因であり、インストーラーに入ったファイルは最新ではありませんでした。交換する予定だったものとして。最新のファイルがインストーラーにコンパイルされると、目的の結果を得ることができました (古いショートカットはアウト、新しいショートカットはイン)。(詳細については、私の回答を参照してください。)