もう一つの初心者のNSIS質問があります。私のNSISスクリプトのUninstallはProgramDataディレクトリからのリンクを削除していません
; -*-nsis-*-
Name "ndhtest"
OutFile "FooStartMenuTest.exe"
XPStyle on
!define FOO_SRC c:\users\nhughes\foo
InstallDir "$PROGRAMFILES\Initech\"
Icon ${FOO_SRC}\foo_logo.ico
UninstallIcon ${FOO_SRC}\uninstall.ico
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
Section
SetOutPath $INSTDIR
File ${FOO_SRC}\foo.bat
WriteUninstaller "$INSTDIR\uninstall.exe"
CreateDirectory $SMPROGRAMS\Initech
CreateShortCut $SMPROGRAMS\Initech\Foo.lnk $INSTDIR\foo.bat "" \
"${FOO_SRC}\foo_logo.ico"
CreateShortCut $SMPROGRAMS\Initech\Uninstall.lnk $INSTDIR\uninstall.exe "" \
"${FOO_SRC}\uninstall.ico"
SectionEnd
Section "Uninstall"
Delete $SMPROGRAMS\Initech\Foo.lnk
Delete $SMPROGRAMS\Initech\Uninstall.lnk
RMDir $SMPROGRAMS\Initech
Delete $INSTDIR\Foo.bat
Delete $INSTDIR\uninstall.exe
RMDir $INSTDIR
SectionEnd
アンインストールがはProgramDataの下にショートカットを残す以外に動作するようです::ここにスクリプトがあります
Directory of c:\ProgramData\Microsoft\Windows\Start Menu\Programs\Initech
08/10/2011 04:07 PM <DIR> .
08/10/2011 04:07 PM <DIR> ..
08/10/2011 04:23 PM 1,847 Foo.lnk
08/10/2011 04:23 PM 1,885 Uninstall.lnk
2 File(s) 3,732 bytes
2 Dir(s) 1,387,345,117,184 bytes free
は私のスクリプトが間違って何を取得していることがうろついこのようなものを残していますか?ここで
は(私は$ SMPROGRAMSをリストDetailPrintメッセージを追加しました)アンインストーラがそのコンソールへの書き込みを行うものです:
smprograms=C:\Users\nhughes\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
Remove folder: C:\Users\nhughes\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Initech\
Delete file: C:\Program Files (x86)\Initech\foo.bat
Delete file: C:\Program Files (x86)\Initech\uninstall.exe
Remove folder: C:\Program Files (x86)\Initech\
Completed
そうはProgramDataの下にあるリンクを参照しない飽きない、それはのAppData \ローミング下のリンクを探しています代わりに。
私はこれをWindows 7でテストしていますが、ここでの中核的な問題は、Windowsリスルの方法のすべての変更にかかわらず、XPからWindows 7までのすべてに対応するスクリプトを作成できるようにすることです異なるバージョンの異なる場所でそれは痛いかもしれないように見えています。スペックから
これはどのOSで起こっていますか? XP? Vista? Windows 7? – Femi
Windows 7の場合 –