为WiX快捷方式设置工作目录

3

我在创建WiX脚本中的快捷方式时遇到了设置工作目录的问题。以下是基本信息:

<!-- create a start menu shortcut. -->
<Directory Id="ProgramMenuFolder">
  <Directory Id="ApplicationProgramsFolder" Name="My Name">
    <Component Id="ApplicationShortcut" Guid="822A26AF-5231-4EDA-A18D-5DF15020BD94">
      <Shortcut Id="ApplicationStartMenuShortcut"
                Name="My Name"
                Description="My Description"
                Target="[INSTALLLOCATION]My.exe"
                WorkingDirectory="INSTALLLOCATION" />
      <RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
    </Component>
  </Directory>
</Directory>

<!-- Install the app. -->
<Directory Id="ProgramFilesFolder">
  <Directory Id="INSTALLLOCATION" Name="My Name">
    <Component Id="ProductComponent" Guid="4740357A-69D3-4626-A0F7-D0667C93A2CE">
      <File Id="My.exe" Name="My.exe" Source="My.exe" />
    </Component>
  </Directory>
</Directory>

这与我看到的示例一致,快捷方式已创建,并且指向正确的exe,但未指定工作目录,因此应用程序无法找到其本地资源。
2个回答

6

您不需要写 [INSTALLLOCATION],因为快捷方式表定义了WkDir列描述“具有快捷方式的工作目录路径的属性名称”。

我建议尝试这个:

<Directory Id="ProgramMenuFolder"> 
  <Directory Id="ApplicationProgramsFolder" Name="My Name"> 
  </Directory> 
</Directory> 

<!-- Install the app. --> 
<Directory Id="ProgramFilesFolder"> 
  <Directory Id="INSTALLLOCATION" Name="My Name"> 
    <Component Id="ProductComponent" Guid="4740357A-69D3-4626-A0F7-D0667C93A2CE"> 
      <File Id="My.exe" Name="My.exe" Source="My.exe" />
        <Shortcut Id="ApplicationStartMenuShortcut" 
                  Advertise="yes"
                  Name="My Name" 
                  Description="My Description" 
                  Directory="ApplicationProgramsFolder"
                  WorkingDirectory="INSTALLLOCATION">
          <Icon Id="My.exe" SourceFile="My.exe" />
        <Shortcut>
    </Component> 
  </Directory> 
</Directory> 

这将在程序文件目录中创建快捷方式,而不是在开始菜单中 - 但是至少快捷方式设置了正确的工作目录。 - Josh Santangelo
实际上这非常有效 - 我想您打算将快捷方式元素嵌套在文件元素中。谢谢! - Josh Santangelo
1
实际上,我选错了标签。不将其作为文件的子级是正确的,因为作为广告快捷方式,它指向组件的密钥文件。请参见此示例:http://iswix.codeplex.com/SourceControl/changeset/view/53668#841603 - Christopher Painter

0

我认为你需要在工作目录属性中的INSTALLLOCATION周围加上方括号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接