Wix - 从c:\ root而不是程序文件安装应用程序并创建快捷方式

时间:2015-07-17 22:38:41

标签: wix

这是我用来创建目录结构和创建子目录的标记。它确实工作得很好。它创建c:\ root的软件目录并在其下创建子目录。但后来我添加了一个名为"快捷方式"的新组件组。我想在开始菜单上创建一个快捷方式和一个桌面图标。我不知道该怎么称呼哪个??????在开始菜单目录中。我在构建项目时也遇到以下错误。

错误1未找到Component / @ Directory属性;这是必需的。
它发生两次。这一行中的一个组件ID =" cmpStartMenuShortcut"这一行中的一个组件ID =" cmpDesktopShortcut"

 <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="WINDOWSVOLUME">
        <Directory Id="SoftwareDirectory" Name="UnionAdministrator">
          <Directory Id="RuntimeFolder" Name="Runtime" />
          <Directory Id="ReportsFolder" Name="Reports" />
          <Directory Id="TasksFolder" Name="Tasks" />
          <Directory Id="DebugLogsFolder" Name="DebugLogs" />
        </Directory>
      </Directory>
      <Directory Id ="FontsFolder" />
      <Directory Id ="???????????r">
        <Directory Id="AppStartMenuFolder" Name="Runtime" />
      </Directory>
      <Directory Id="DesktopFolder" />
    </Directory>

    <SetDirectory Id="WINDOWSVOLUME" Value="[WindowsVolume]" />
  </Fragment>

  <Fragment>
    <ComponentGroup Id="ProductComponents">
      <Component Id="cmpCreateRuntimeFolder"
                 Guid="{27D409D8-8D86-4CB0-8165-E30A6E3998EC}"
                 Directory="RuntimeFolder">
        <CreateFolder />
      </Component>
      <Component Id="cmpCreateReportsFolder"
                 Guid="{9621003B-0BDC-44D8-B981-C5B9CA76C733}"
                 Directory="ReportsFolder">
        <CreateFolder />
      </Component>
      <Component Id="cmpCreateTasksFolder"
                 Guid="{785A0024-16B2-499D-9B67-6BCBB8094C55}"
                 Directory="TasksFolder">
        <CreateFolder />
      </Component>
      <Component Id="cmpCreateDebugLogsFolder"
                 Guid="{9C91955B-967A-411D-ACD9-6C6AA15F84E8}"
                 Directory="DebugLogsFolder">
        <CreateFolder />
      </Component>
    </ComponentGroup>
  </Fragment>

 <Fragment>
    <ComponentGroup Id="Shortcuts">
      <Component Id="cmpStartMenuShortcut"
                         Guid="{2A561F4E-118A-4927-9C29-7FF441B77097}">
        <Shortcut Id="StartMenuShortcut"
                        Name="Union Adminstrator"
                        Description="Runs UnionAdminstrator"
                        Directory="AppStartMenuFolder"
                        Target="[RuntimeFolder]UnionAdministrator.exe" />
      </Component>
      <Component Id="cmpDesktopShortcut"
                     Guid="{6A686136-06D9-469B-93BA-076D5F32D46B}">
        <Shortcut Id="DesktopShortcut"
                        Name="Union Adminstrator"
                        Description="Runs UnionAdminstrator"
                         Directory="DesktopFolder"
                        Target="[#FILE_UAEXE] " />
      </Component>
    </ComponentGroup>
  </Fragment>

1 个答案:

答案 0 :(得分:0)

为快捷方式提供目录。并像为其他组件所做的那样分配它。 此外,由于您无法将快捷方式作为keypath,因此可以将快捷方式组件中的注册表保留为keypath。