私が取り組んでいるWixセットアップは、デスクトップのメインプログラムからショートカットをインストールするかどうかをユーザーに尋ねます。
問題は、アップグレード中にショートカットが削除されてから再作成されることです。
- ユーザーがアイコンを移動した場合、アイコンは別の場所に再作成されている可能性があります(左上隅から始まる次の空き領域)
- ユーザーが初期インストール中にアイコンを作成しないことを選択した場合、UIを使用したアップグレードでは、アイコンを作成するためのチェックボックスがデフォルトで「オフ」になっている必要があることを覚えていません。サイレントアップグレードでは、ユーザーが明示的にアイコンを作成しないことを選択した場合でも、アイコンが作成されます。このアイコンが作成されました。
この状況を適切に処理する簡単な方法はありますか?
以下は私のwixセットアップに関する情報です:
インストールはマシンごとです
ユーザーは、「宛先の選択」の変更バージョンに追加されたチェックボックスを介してデスクトップショートカットをインストールすることを選択します。
<Control Id="DesktopShortcutCheckBox" Type="CheckBox" X="20" Y="160" Width="290" Height="17" Property="INSTALLDESKTOPSHORTCUT" CheckBoxValue="[INSTALLDESKTOPSHORTCUT]" Text="!(loc.InstallDirDlgCreateDesktopShortcut)" />
UIタグで、プロパティを初期化しました。
<Property Id="INSTALLDESKTOPSHORTCUT" Value="1"/>
これは、INSTALLDESKTOPSHORTCUT条件でショートカットを作成するためのコンポーネントです。
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="desktopconnecteurdts" Guid="a-real-guid-here">
<Condition>INSTALLDESKTOPSHORTCUT=1</Condition>
<Shortcut Id="desktopconnecteurdts" Name="DTS eXplorer" WorkingDirectory="ApplicationFolder" Icon="DTSeXplorer.exe" Target="[ApplicationFolder]\DTSeXplorer.exe" Advertise="no" />
</Component>
</Directory>
起動時に、セットアップは古いバージョンが存在するかどうかを確認し、見つかった場合は古いバージョンを削除します。
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion OnlyDetect="no"
Property="PREVIOUSVERSIONSINSTALLED"
Minimum="$(var.OldProductVersion)"
IncludeMinimum="yes"
Maximum="$(var.ProductVersion)"
IncludeMaximum="no"
RemoveFeatures="all" />
<UpgradeVersion OnlyDetect="yes" Property="PROJECT_DOWNGRADE"
Minimum="$(var.ProductVersion)" IncludeMinimum="no" />
</Upgrade>
製品バージョンメジャーは変更されません。たとえば、1.6.8.12345から1.7.2.56789にアップグレードしています。
ありがとう !