当Target exe名称包含WIX中的空格时,未创建快捷方式

时间:2015-05-26 08:09:20

标签: wix windows-installer installer shortcut

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

但是当我在快捷方式目标属性中给出exe名称或路径(带空格)时,则不会创建快捷方式。

下面是工作代码(没有空格的exe名称)。

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

以下代码正常工作(exe名称带空格)。

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

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

目标只是属性名称,因此不允许在其中包含空格。 但您可以在快捷方式名称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属性。