5

私が取り組んでいる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にアップグレードしています。

ありがとう !

4

2 に答える 2

1

インストール中に、INSTALLDESKTOPSHORTCUTの値をレジストリに書き込みます。インストーラーが起動するたびに、レジストリーを読み取ることができ、そのキーが存在する場合は、そのキーをそのプロパティのデフォルト値として設定します。

ただし、デスクトップ上のショートカットの場所について何かできるかどうかはわかりません。

于 2012-04-12T17:55:41.850 に答える
0

wixのみを使用して、ショートカットの設定を保存および復元できます。

あなたの財産はこのように見える必要があります。

<Property Id="INSTALLDESKTOPSHORTCUT" Value="1" Secure="yes">
  <RegistrySearch Id="Reg64" Root="HKLM" Win64="yes" Key="Software\$(var.ProductCompany)" Name="CreateDesktopShortcut" Type="raw"></RegistrySearch>
  <RegistrySearch Id="Reg32" Root="HKLM" Win64="no" Key="Software\$(var.ProductCompany)" Name="CreateDesktopShortcut" Type="raw"></RegistrySearch>
</Property>

2つの'RegistrySearchは、32ビットと64ビットの両方のインストーラーをカバーするためだけにあります。32ビットのみを使用する場合は、そのうちの1つを削除できます。

そして、ルートフォルダの下にこれを追加します。

<Component Permanent="yes" Id="RegistryEntries" Guid="YOUR_GUID">
  <RegistryKey Root="HKLM" Key="Software\$(var.ProductCompany)" Action="create">
    <RegistryValue Type="integer" Name="CreateDesktopShortcut" Value="[INSTALLDESKTOPSHORTCUT]" />
  </RegistryKey>
</Component>
于 2012-04-14T16:38:27.587 に答える