2010-11-22 9 views
1

私はできるだけ明確にしようとします。データにアクセスするNSISの問題

NSISでインストールプログラムを作成しました。デスクトップ上にアイコンが作成され、ダブルクリックするとアプリケーションがうまくランチします。 しかし、インストールディレクトリには、 "style.css"を含む "css"のような他のディレクトリがあり、プログラムがショートカット( - > desktop)のディレクトリで自分のcssファイルを探しているようです。

プログラムをデスクトップではなくインストールディレクトリに表示するにはどうすればよいですか?

ご回答ありがとうございます。ここで


私が使用したコードは次のとおりです。私は "$ INSTDIR" にOUTPATH(3行目)を変更した場合

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 

、ショートカットが全く作成されません。このコードを使用すると、ショートカットは作成されますが、「開始」パラメータがデスクトップに設定されます。

答えて

2

この場合の問題は、アプリケーションが相対パスを適格にしないで使用していることです。簡単な解決策ショートカットが作業ディレクトリを指定することです。(SetOutPathCreateShortCutを変えるが、マニュアルにはそれがないと言うことを奇妙に思える)

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?

+0

おかげで、私もこのソリューションを見つけましたが、別の問題が今あります: CreateShortCut "$ SMPROGRAMS \ MyAppに\ MyApp.lnk" "$ INSTDIR \ MYAPP.EXEは、" プログラムリストにショートカットを作成しますが、私はこの時間を除いて、以前と同じ問題を抱えています。SetOutPath "$ INSTDIR" 何も変わっていません...いいですか? – Yoot

+0

別の問題がありますか?何の問題?それが間違った場所にある場合は、再度 'SetOutPath'を使って元の場所に戻ります。 –

+0

あまりにも速く "入力する"を押して申し訳ありませんが、私は投稿を完了していませんでした;) – Yoot

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 
関連する問題