WiX 3 でインストールされているアプリがあります。ほとんどのインストールは今のところ問題なく動作していますが、デスクトップ ショートカットを機能させようとすると、気が遠くなるような気がします...
アプリをインストールしていますが、スタート メニュー フォルダーに既にショートカットがあります。問題なく動作します。しかし、デスクトップ ショートカットを起動して実行するにはどうすればよいでしょうか。
<Product Id="*" Name="....." UpgradeCode="MY-GUID">
<Package Id="*" InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="foobar.cab" EmbedCab="yes" />
<Property Id="ALLUSERS">1</Property>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="FooBar"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
<Directory Id="ProgramFilesFolder">
<Directory Id="FoobarDir" Name="FOOBAR">
<Directory Id="INSTALLLOCATION" Name="FooApp">
<Component Id="MainFiles" Guid=".....">
<File Id="FooMainApp" Source="FooMainApp.exe" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
....
<!-- this shortcut here works just fine ... -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="AppShortcut" Guid="...">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="FooBarApp" Description="..."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>
<!-- but this shortcut here never seems to work .. ... -->
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="....." >
<Shortcut Id="DesktopAppShortcut"
Advertise="no"
Name="FooBarApp" Description="...."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>
私が取得し続けるエラーは次のとおりです。
ICE18:コンポーネントのキーパス: 'DesktopShortcut' はディレクトリ: 'DesktopFolder' です。ディレクトリ/コンポーネントのペアは、CreateFolders テーブルにリストされている必要があります。
ICE38:コンポーネント DesktopShortcut がユーザー プロファイルにインストールされます。ファイルではなく、HKCU の下のレジストリ キーを KeyPath として使用する必要があります。
ICE43:コンポーネントの DesktopShortcut に非公開のショートカットがあります。ファイルではなく、HKCU の下のレジストリ キーを KeyPath として使用する必要があります。
WiX 3 / Windows インストーラーがここで何を伝えようとしているのか理解できません....誰か??
AppShortcut
との両方のコンポーネントDesktopShortcut
は、実際には「メイン」機能の一部です。問題はありません。ここでいったい何が間違っているのかわかりません....
更新: OK、デスクトップ ショートカットにいくつかのレジストリ キーを追加しました
<Component Id="DesktopShortcut" Guid="BF3587B4-F52E-411E-8814-CFCBF8201C0D">
<RegistryKey Root="HKCU" Key="Software\Foo Inc\FooBarApp\Installed"
Action="createAndRemoveOnUninstall">
<RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/>
</RegistryKey>
<Shortcut Id="DesktopShortcut" Directory="DesktopFolder"
Name="FooBar" WorkingDirectory="INSTALLLOCATION"
Icon="foobar.ico"
Target="[INSTALLOCATION]FooMainApp.exe"/>
</Component>
ICEメッセージはなくなりましたが、アプリをインストールしようとすると、エラー1909が表示されます-ターゲットフォルダーが存在しないか、書き込み権限がありません(またはそのようなもの)
更新 2:提供されている上記のサンプル コードは Win XP では動作しますが、Win Server 2003 では失敗し続けます :-( 何かアイデアはありますか??