- Offizieller Beitrag
Ich hab da noch einen Fehler entdeckt. Wenn man RenewINI ausführt, wird die Datei includes_scriptDir.ini nicht upgedatet. Man muß erst die Datei löschen bevor sie upgedatet/neu geschrieben wird.
Edit ich konnte den Fehler lokalisieren:
Spoiler anzeigen
Func _prepareINI($release = 1, $beta = 0, $UDFDir = 0, $scriptDir = 0)
; Für alle IncludeFolder checken ob sich die Anzahl der au3 Dateien geändert hat. Wenn ja, dann
; soll _prepareOrganizeIncludes() aufgerufen werden,
; ### ggf. noch die IncludeUDFPfade auf Änderungen überprüfen!
If $release = 1 And $beta = 1 Then $beta = 0 ; Make sure only one version is used
ConsoleWrite("Wert $release :" & $release & @CRLF)
If FileExists($includesIni_Release) = 0 Or (IniRead($settingsINI, 'Version', 'Release', 0) <> $InstallVersion) Or $release = 2 Then
; Release version
Switch $release
Case -1 ; Dieses Case wird nie ausgeführt, weil durch die If Abfrage nie -1 durchkommt
FileDelete($includesIni_Release)
Case 1, 2
; getInfo for Autoit Release Version
; delete ini file
FileDelete($includesIni_Release)
_writeIniFile($InstallPath & '\Include', 'Release', $includesIni_Release)
EndSwitch
Local $Au3Functions_A = _getAutoitFuncs($InstallPath)
IniWrite($includesIni_Release, 'AU3', 'Functions', _ArrayToString($Au3Functions_A, ';'))
Local $au3Keywords_A = _getAutoitKeywords($InstallPath)
IniWrite($includesIni_Release, 'AU3', 'Keywords', _ArrayToString($au3Keywords_A, ';'))
EndIf
ConsoleWrite("Wert $beta :" & $beta & @CRLF)
If FileExists($includesIni_Beta) = 0 Or (IniRead($settingsINI, 'Version', 'Beta', 0) <> $betaInstallVersion) Or $beta = 2 Then
; Beta version
Switch $beta
Case 1, 2
If $betaInstallPath <> '' Then
; getInfo for Autoit Release Version
; delete ini file
FileDelete($includesIni_Beta)
_writeIniFile($betaInstallPath & '\Include', 'Beta', $includesIni_Beta)
EndIf
Case -1 ; Dieses Case wird nie ausgeführt, weil durch die If Abfrage nie -1 durchkommt
FileDelete($includesIni_Beta)
EndSwitch
EndIf
; #3 was überlegen
ConsoleWrite("Wert $UDFDir :" & $UDFDir & @CRLF)
If FileExists($includesIni_UDF) = 0 Or $UDFDir = 2 Then
; UDF path
Switch $UDFDir
Case 1, 2
FileDelete($includesIni_UDF)
; getInfo for for all UDF pathes
Local $udf_Pathes = _getUDFPathes()
If @error = 0 Then
For $i = 0 To UBound($udf_Pathes) - 1
_writeIniFile($udf_Pathes[$i], 'UDF', $includesIni_UDF)
Next
EndIf
Case -1 ; Dieses Case wird nie ausgeführt, weil durch die If Abfrage nie -1 durchkommt
FileDelete($includesIni_UDF)
EndSwitch
EndIf
; #3 was überlegen
ConsoleWrite("Wert ScriptDir :" & $scriptDir & @CRLF)
If FileExists($includesIni_ScriptDir) = 0 Or $scriptDir = 2 Then ;Hier liegt der Fehler Original: If FileExists($includesIni_ScriptDir) = 0 And ($scriptDir = 1 Or $scriptDir = 2) Then
; ScriptDir ;Es wurde nur ausgeführt, wenn die Datei nicht existierte und Checkbox an wa. !!!!
Switch $scriptDir
Case 1, 2
FileDelete($includesIni_ScriptDir)
_writeIniFile($scriptDirPath, 'ScriptDir', $includesIni_ScriptDir)
Case -1 ; Dieses Case wird nie ausgeführt, weil durch die If Abfrage nie -1 durchkommt
FileDelete($includesIni_ScriptDir)
EndSwitch
EndIf
Return 1
EndFunc ;==>_prepareINI
Edit 2: Wäre es nicht irgendwie sinnvoll die includes_scriptDir.ini im durchsuchten Scriptdir Verzeichnis abzulegen? Sollte versehentlich die Script Directory Checkbox selektiert sein und man Organize Includes auf eine Datei anwendet, die nicht im Verzeichnis liegt auf das sich includes_scriptDir.ini bezieht, kann die Include Datei ja auch nicht gefunden werden. Resultat ist ein Fehler beim compilieren.