我正在尝试创建一个安装程序,使程序在启动时为当前用户运行。我可以创建一个快捷方式,但我似乎无法放入正确的文件夹。
<!-- some wix stuff -->
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<!-- more wix stuff -->
<Directory Id="TARGETDIR" Name="SourceDir">
<!-- more directory stuff -->
<Directory Id="UserStartupFolder"/>
</Directory>
<SetDirectory Id="UserStartupFolder" Value="[%APPDATA]\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\"/>
<!-- more wix stuff -->
<DirectoryRef Id="UserStartupFolder">
<Component Id="StartupFolderShortcut" Guid="MyGUID">
<Shortcut Id="StartupFolderShortcut" Name="MyShortcut" Description="$(var.description)" Target="[#MainExecutable]" WorkingDirectory="INSTALLFOLDER"/>
<RegistryValue Root="HKCU" Key="Software\$(var.companyDisplayName)\$(var.projectDisplayName)\UserStartupItem" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<!-- more wix stuff -->
我不明白为什么这不起作用。如果我将Value
的{{1}}更改为SetDirectory
,则快捷方式位于该文件夹中,但如果我将其更改为"[%APPDATA]\\Microsoft\\Windows\\"
,则快捷方式不在那个开始菜单文件夹。我不知道Wix是否尝试使用“开始”菜单文件夹执行某些特殊操作,或者文件夹名称中是否存在空格问题,或者是否为其他内容。
documentation提到"[%APPDATA]\\Microsoft\\Windows\\Start Menu\\"
使用Formatted语法,但没有提及任何有关空格的问题。此外,大多数recognized environment variables似乎不适用于此(至少我没有想到它),但如果这些工作,我将不必硬编码一半的路径。
如何在用户的启动文件夹中创建快捷方式?
答案 0 :(得分:0)
为什么不直接使用StartupFolder
-property?通过这种方式,您不必手动创建手动创建路径的所有可能性。
关于你为什么不工作的问题:我没有具体的答案,但你可以检查: