【问题标题】:Setting working directory for a WiX shortcut为 WiX 快捷方式设置工作目录
【发布时间】:2010-10-06 20:59:43
【问题描述】:

我在设置作为 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,但快捷方式没有指定工作目录,因此应用找不到其本地资源。

【问题讨论】:

    标签: wix shortcut


    【解决方案1】:

    您不需要说 [INSTALLLOCATION],因为 ShortCut 表定义的 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> 
    

    【讨论】:

    • 这会在程序文件目录中创建快捷方式,而不是在开始菜单中——但至少该快捷方式确实设置了正确的工作目录。
    • 实际上这非常有效——我认为您打算将快捷方式元素嵌套在文件元素中。谢谢!
    • 其实我选错了。不是 File 的子项是正确的,因为作为宣传的快捷方式,它指向组件的密钥文件。请参阅此示例:iswix.codeplex.com/SourceControl/changeset/view/53668#841603
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2010-10-11
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多