在我的Product
中,我定义了一个如下所示的自定义操作:
<CustomAction Id="InstallScreensaver"
Directory="SystemFolder"
Return="asyncNoWait"
ExeCommand="rundll32.exe desk.cpl,InstallScreenSaver [#screensaver]"/>
关注此博文:https://ithoughthecamewithyou.com/post/wix-tricks-for-screen-savers
但是当我链接它(光)时,我收到了这个错误:
error LGHT0094 : Unresolved reference to symbol 'Directory:SystemFolder' in section 'Product:*'.
为什么?
在Wix's documentation of predefined variables上,我可以SystemFolder
:
SystemFolder - 在64位Windows上获取CSIDL_SYSTEMX86的知名文件夹,在32位Windows上获取CSIDL_SYSTEM。
我还创建了一个使用该变量的快捷方式:
<Shortcut Id="Shrt_Install_Screensaver"
Name="Install Screensaver"
WorkingDirectory="SystemFolder" Icon="icon.ico"
Target="[SystemFolder]rundll32.exe"
Arguments="desk.cpl,InstallScreenSaver [#screensaver]"/>
答案 0 :(得分:0)
也许尝试直接在SystemFolder
下面添加TARGETDIR
作为第一个测试(使用匆忙的模型为我编译并运行):
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="SystemFolder" />
<...>
</Directory>
我认为这对于msiexec.exe
引擎来说已经足够了,即使您没有指定真正的文件夹名称,也可以填写其余的#34;因为这是{{1}之一3}}
我不确定是否将您的链接问题称为WiX错误。它可能应该自动处理,因为有问题的文件夹是系统文件夹。我会把它称为一个错误或一个缺失的自动魔法。
您的屏幕保护程序是64位还是32位?对于记录System32
包含64位文件而SysWOW64
包含32位文件,但我想您已经知道了。仅限Windows ...
保管的一些链接: