У меня есть следующая функция для рекурсивного поиска DLL-файлов.
Function ProcessDLLFiles
Exch $0
Push $1
Push $2
FindFirst $1 $2 "$INSTDIR\*.dll"
loop:
IfErrors end
DetailPrint 'Found "$0\$2"'
FindNext $1 $2
goto loop
end:
FindClose $1
FindFirst $1 $2 "$0\*.*"
dirloop:
IfErrors dirend
IfFileExists "$0\$2\*.*" 0 dirnext
StrCmp $2 "." dirnext
StrCmp $2 ".." dirnext
Push "$0\$2"
call ${__FUNCTION__}
dirnext:
FindNext $1 $2
goto dirloop
dirend:
FindClose $1
Pop $2
Pop $1
Pop $0
FunctionEnd
Когда я запускаю установщик в обычном режиме, он работает должным образом и находит все DLL-файлы в соответствующей папке.
Однако он не находит эти файлы в режиме без вывода сообщений, хотя я могу перейти к каталогу, в котором он ищет, и увидеть, что файлы там есть. Я уже запрашиваю права администратора во время установки, и администраторы имеют полные права доступа к файлам DLL в папке.
Есть идеи, почему не удается найти файлы?