在 WIX 中目标 exe 名称包含 space 时未创建快捷方式

Shortcut not created when Target exe name contains space in WIX

我在 Wix 中创建快捷方式时遇到问题。当我在快捷方式目标属性中给出 exe 名称或路径(没有 space)时,然后创建了快捷方式。

但是当我在快捷方式目标属性中给出 exe 名称或路径(space)时,快捷方式没有创建。

下面是工作代码(exe 名称没有 space)。

     <DirectoryRef Id="StartupFolder">
      <Component Id="MyComponentId" Guid="*">
        <Shortcut Id="ApplicationStartMenuShortcut"
              Name="MyAppName"
            Description="MyApp Description"
             Target="[#MyTestApp.exe]"
             WorkingDirectory="MyAppDirectory"/>

下面的代码正在运行(exe 名称带有 space)。

    <DirectoryRef Id="StartupFolder">
      <Component Id="MyComponentId" Guid="*">
        <Shortcut Id="ApplicationStartMenuShortcut"
              Name="MyAppName"
            Description="MyApp Description"
             Target="[#My Test App.exe]"
             WorkingDirectory="MyAppDirectory"/> 

SO 只是想知道当我在快捷方式目标属性中给出 exe 名称或路径(使用 space)时,是否创建了快捷方式?

如果创建了,我该怎么做。

谢谢。

目标只是属性名字,所以里面不能有空格。 但是您可以在快捷方式名称 Shortcut[@Name] 和文件名 File[@Source].

中包含空格

因此,如果您的可执行文件的名称中包含空格,您可以执行以下操作:

<Fragment>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
        <Component Id="Component_MyAppExecutable" Guid="*">
            <File Id="File_ApplicationExecutable" Source="My Test App.exe" />
        </Component>

        <Component Id="MyComponentId" Guid="{B0A9F180-49C1-4059-B1D9-8EF0186D5C98}">
            <CreateFolder />

            <Shortcut Id="ApplicationStartMenuShortcut"
                      Name="My App Name"
                      Description="MyApp Description"
                      Target="[#File_ApplicationExecutable]"
                      WorkingDirectory="INSTALLFOLDER" />
        </Component>
    </ComponentGroup>
</Fragment>

注意:必须为快捷方式明确指定 Guid 属性。