我会尽量让自己变得清晰。
我用NSIS制作了一个安装程序。桌面上创建了一个图标,当我双击它时,应用程序就会很好地嵌入。 但是,在安装目录中我有其他目录(如“css”,其中包含“style.css”),似乎程序正在快捷方式目录中查找我的css文件( - >桌面)。 / p>
如何让程序在安装目录而不是桌面上查找?
感谢您的回答。
以下是我使用的代码:
Section "Shortcuts"
SectionIn 2
SetOutPath "$SMPROGRAMS\MyApp"
CreateShortCut "$SMPROGRAMS\MyApp\MyApp.lnk" "$INSTDIR\MyApp.exe"
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd
如果我将outpath(第3行)更改为“$ INSTDIR”,则根本不会创建快捷方式。如果我使用此代码,则会创建快捷方式,但“start in”参数将设置为桌面。
答案 0 :(得分:2)
在这种情况下的问题是您的应用程序使用相对路径而不限定它们;简单的解决方案是让快捷方式指定工作目录:( SetOutPath
改变CreateShortCut
似乎很奇怪,但手册说它确实如此)
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe" # etc.
正确的解决方案是使所有路径绝对;你把它标记为qt
所以我认为你使用的是Qt和C ++。搜索“qt绝对路径”和类似的东西 - 例如Qt-interest Archive - How to get an application's absolute path?
答案 1 :(得分:0)
Section "Shortcuts"
SectionIn 2
CreateDirectory "$SMPROGRAMS\MyApp" #CreateShortCut does not create directories
SetOutPath "INSTDIR"
CreateShortCut "$SMPROGRAMS\MyApp\MyApp.lnk" "$INSTDIR\MyApp.exe"
SetOutPath "$INSTDIR"
CreateShortCut "$DESKTOP\MyApp.lnk" "$INSTDIR\MyApp.exe"
SectionEnd