我正在尝试为32位应用程序创建一个exe安装程序,它也会为我的应用程序创建快捷方式。我正在使用NSIS构建安装程序,并且我成功构建了安装程序。当我在64位Windows操作系统上运行.exe时,它会创建必要的文件夹,更新注册表并在桌面上创建快捷方式。但是,当我检查创建的桌面上的shorcut的属性时,“start-in”参数是正确的。但是,目标参数是错误的。即我用:
创建快捷方式“$ DESKTOP \ shortcut.lnk”“$ INSTDIR \ bin \ app.exe”“”
其中INSTDIR = programfiles
启动设置正确:C:\ program files(x86).... 我期待目标是一样的。
但是,目标设置为:C:\ program files ....
我在这里遗漏了什么吗?
答案 0 :(得分:1)
MessageBox
$ INSTDIR,确保它是C:\program files(x86)\...
您是否正在调用DisableX64FSRedirection(x64.nsh)?
启动/工作目录来自最后一次调用SetOutPath。
我认为NSIS几乎不会将字符串传递给shell,您可以使用logging build查看字符串,然后再传递给IShellLink::SetPath