gpt4 book ai didi

WiX 3 让我抓狂 - 试图创建桌面快捷方式

转载 作者:行者123 更新时间:2023-12-02 04:39:42 25 4
gpt4 key购买 nike

我有一个与 WiX 3 一起安装的应用程序 - 到目前为止,大部分安装都可以正常工作,但尝试让桌面快捷方式工作似乎让我费了心思...

我已经安装了我的应用程序,并且“开始”菜单文件夹上已经有一个快捷方式 - 工作得很好。但是如何启动并运行桌面快捷方式呢?

<Product Id="*" Name="....." UpgradeCode="MY-GUID">
<Package Id="*" InstallerVersion="200" Compressed="yes" />
<Media Id="1" Cabinet="foobar.cab" EmbedCab="yes" />
<Property Id="ALLUSERS">1</Property>

<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="FooBar"/>
</Directory>
<Directory Id="DesktopFolder" SourceName="Desktop"/>
<Directory Id="ProgramFilesFolder">
<Directory Id="FoobarDir" Name="FOOBAR">
<Directory Id="INSTALLLOCATION" Name="FooApp">
<Component Id="MainFiles" Guid=".....">
<File Id="FooMainApp" Source="FooMainApp.exe" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
....
<!-- this shortcut here works just fine ... -->
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="AppShortcut" Guid="...">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="FooBarApp" Description="..."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>
<!-- but this shortcut here never seems to work .. ... -->
<DirectoryRef Id="DesktopFolder">
<Component Id="DesktopShortcut" Guid="....." >
<Shortcut Id="DesktopAppShortcut"
Advertise="no"
Name="FooBarApp" Description="...."
Target="[INSTALLLOCATION]FooMainApp.exe"
WorkingDirectory="INSTALLLOCATION"/>
</Component>
</DirectoryRef>

我不断收到的错误是:

ICE18: KeyPath for Component: 'DesktopShortcut' is Directory: 'DesktopFolder'. The Directory/Component pair must be listed in the CreateFolders table.
ICE38: Component DesktopShortcut installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file.
ICE43: Component DesktopShortcut has non-advertised shortcuts. It should use a registry key under HKCU as its KeyPath, not a file.

我不明白 WiX 3/Windows Installer 到底想告诉我什么......有人吗?

这两个组件,AppShortcutDesktopShortcut,实际上都是“主要”功能的一部分 - 我没有看到任何问题。我不知道这里到底出了什么问题......

更新:好的,所以我在桌面快捷方式中添加了一些注册表项内容

<Component Id="DesktopShortcut" Guid="BF3587B4-F52E-411E-8814-CFCBF8201C0D">
<RegistryKey Root="HKCU" Key="Software\Foo Inc\FooBarApp\Installed"
Action="createAndRemoveOnUninstall">
<RegistryValue Name="DTSC" Value="1" Type="integer" KeyPath="yes"/>
</RegistryKey>
<Shortcut Id="DesktopShortcut" Directory="DesktopFolder"
Name="FooBar" WorkingDirectory="INSTALLLOCATION"
Icon="foobar.ico"
Target="[INSTALLOCATION]FooMainApp.exe"/>
</Component>

现在 ICE 消息消失了,但是当我尝试安装该应用程序时,我收到错误 1909 - 目标文件夹不存在,或者您没有写入它的权限(或类似的内容)

更新 2: 上面提供的示例代码可以在 Win XP 上运行,但在 Win Server 2003 上却一直失败:-( 还有其他想法吗?

最佳答案

这是我们实时生产代码中的一个工作示例...

<Fragment>
<Component Id="DesktopShortcut" Directory="APPLICATIONFOLDER" Guid="*">
<RegistryValue Id="RegShortcutDesktop" Root="HKCU"
Key="SOFTWARE\ACME\settings" Name="DesktopSC" Value="1"
Type="integer" KeyPath="yes" />
<Shortcut Id="desktopSC" Target="[APPLICATIONFOLDER]MyApp.exe"
Directory="DesktopFolder" Name="My Application"
Icon="$(var.product).ico" IconIndex="0"
WorkingDirectory="APPLICATIONFOLDER" Advertise="no"/>
</Component>
</Fragment>

关于WiX 3 让我抓狂 - 试图创建桌面快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3075925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com