11

WiXを使用してデスクトップへのショートカットを作成するには2つの答えがあります

これらの答えは両方とも、何が起こっているのかについての本当の説明を欠いています。ショートカットを作成するこれら 2 つの方法の違いは何ですか? 最初の方法は、WiX - ショートカットドキュメントの作成に準拠しています。

2 番目の方法には、MergeRedirectFolderドキュメントが見つからないように思われるものがあります。WiX ドキュメントによると、レジストリ設定:

現在のユーザーに非公開のショートカットをインストールする場合、Shortcut はコンポーネントの KeyPath として機能できないため、必須です。

これは、2 番目の方法が宣伝されているショートカットであることを意味しますか? それとも、ユーザーがマシンごとにインストールしていることを前提とした回答ですか? それとも私はソースで迷っていますか?(かなり可能性があります-Microsoftが私にこの道を強制したので、2日目にWiXを使用しようとしました。)

最初の1つ:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="DesktopFolder" Name="Desktop">
    <Component Id="ApplicationShortcutDesktop" Guid="*">
      <Shortcut Id="ApplicationDesktopShortcut"
         Name="Text under your icon"
         Description="Comment field in your shortcut"
         Target="[MYAPPDIRPROPERTY]MyApp.exe"
         WorkingDirectory="MYAPPDIRPROPERTY"/>
      <RemoveFolder Id="DesktopFolder" On="uninstall"/>
      <RegistryValue
        Root="HKCU"
        Key="Software/MyAppName"
        Name="installed"
        Type="integer"
        Value="1"
        KeyPath="yes"/>
    </Component>
  </Directory>
    <Directory Id="ProgramFilesFolder" Name="PFiles">
      <Directory Id="MyCompany" Name="MyCompany">
        <Directory Id="MYAPPDIRPROPERTY" Name="MyAppName">
      </Directory>
    </Directory>
  </Directory>

2番目のもの:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="DesktopFolder" SourceName="Desktop" />
  <Directory Id="MergeRedirectFolder">
    <Component Id="MyExeComponent" Guid="*">
      <File Id="MyExeFile" Source="$(var.ExeSourcePath)" KeyPath="yes">
        <Shortcut
          Id="DesktopShortcut"
          Directory="DesktopFolder"
          Name="$(var.ShortcutName)"
          WorkingDirectory="MergeRedirectFolder" />
      </File>
    </Component>
  </Directory>
</Directory>
4

1 に答える 1

5

警告: Doc のコメントによると、どちらの例もAdvertise属性を指定していないため、宣伝されたショートカットを作成する必要はありません。以下に答えを書くようになった理由は覚えていません。間違っている可能性が高いようです。その背後に微妙な真実がある場合に備えて、答えはそのままにしておきます。


最初の例では、アドバタイズされたショートカットを作成します。2 つ目は、宣伝されていないショートカットを作成します。2 種類のショートカットのルールは、ショートカット テーブルの ターゲット列で説明されています。

アドバタイズされていないショートカットは、Windows エクスプローラーで作成するような標準の Windows ショートカットです。アドバタイズされたショートカットは、ショートカットがアクティブ化されたときに機能内のすべてのコンポーネントがインストールされていることを確認することにより、回復力を強化します。

于 2014-06-17T17:44:26.163 に答える