Windows 7 WiX正在安装C:\Users\Public的快捷方式,但不应该安装
WiX正在安装我创建的快捷方式,该快捷方式指向C:\Users\Public\Desktop。问题是:我没有指定那个目录。完全在任何地方这是错误的用户帐户 我要安装的快捷方式是C:\Users\Administrator\Desktop(此帐户将始终存在于任何目标计算机上) 我尝试了各种方法来硬编码目的地。以下是其中一些: 使用Windows 7 WiX正在安装C:\Users\Public的快捷方式,但不应该安装,windows-7,directory,wix,windows-installer,user-accounts,Windows 7,Directory,Wix,Windows Installer,User Accounts,WiX正在安装我创建的快捷方式,该快捷方式指向C:\Users\Public\Desktop。问题是:我没有指定那个目录。完全在任何地方这是错误的用户帐户 我要安装的快捷方式是C:\Users\Administrator\Desktop(此帐户将始终存在于任何目标计算机上) 我尝试了各种方法来硬编码目的地。以下是其中一些: 使用元素 <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ADMIN"/
元素
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ADMIN"/>
<Directory Id="ProgramFilesFolder">
...
<Directory Id="MyProductDir" Name="MyProduct"/>
</Directory>
<SetDirectory Id="ADMIN" Value="C:\Users\Administrator\Desktop"/>
<Component Id="Cmp_MyProduct" Guid="..." Directory="MyProductDir>
<File Source="MyProduct.exe"/>
</Component>
<Component Id="Cmp_AdminDesktop" Guid="..." Directory="MyProductDir">
<Shortcut Id="Shortcut_Admin" Name="MyProduct.exe"
Directory="ADMIN" Target="[MyProductDir]MyProduct.exe"/>
<RemoveFolder Id="Admin_RemoveFolder" Directory="ADMIN"
On="Uninstall"/>
<RegistryValue Root="HKCU" .... KeyPath="Yes"/>
</Component>
<Feature Id="Install_MyProduct" Level="1">
<ComponentRef Id=Cmp_MyProduct"/>
</Feature>
<Feature Id="Install_to_Desktop" Level="1">
<ComponentRef Id="Cmp_AdminDesktop"/>
</Feature>
...
我也尝试过不使用
元素,只是以正常方式创建了C:\Users\Administrator\Desktop目录(嵌套
元素)
我还尝试了无数其他方法,它一直在安装C:\Users\Public\Desktop的快捷方式
有没有我遗漏的公共物品
日志文件显示它正在安装到C:\Users\Public\Desktop文件中,但它似乎没有给出一个很好的理由。它确实显示了
元素的值是C:Users\Administrator\Desktop,这是值得的
其他人是否曾经遇到过将WiX安装到错误用户的问题?为什么不使用预定义属性
@BrianSutherland,DesktopFolder
为当前用户指定桌面文件夹的路径,但他希望为特定用户管理员
创建快捷方式。您是否尝试过从快捷方式元素中删除目录
属性并改为设置
?另外,HKCU
的keypath注册表项似乎是错误的,因为这样会将keypath绑定到当前用户,而不是Administrator
用户。我无法使用预定义属性的原因是,当我这样做时,它不会安装到C:驱动器。请参阅,WiX安装到空间最大的可写驱动器。在我的测试机上,是D:驱动器。我已尝试将ROOTDRIVE属性设置为C:,但这似乎没有改变任何东西。此外,“DesktopFolder”属性安装到登录用户的桌面上。为了简单起见,我的解释遗漏了很多内容。我必须根据计算机上存在的帐户(管理员帐户可能被称为其他帐户)将各种东西安装到不同的位置。