Archive: Problem -> could not resolve label


Problem -> could not resolve label
Hi,
i'm making custom 7-zip builds and now i want to pack all in one installer and i made some modifications to the original one to support some options but when i try to compile the script i always get this error


Processed 1 file, writing output:
Adding plug-ins initializing function... Done!
Error: could not resolve label "_LogicLib_Label_196.10" in unnamed install section (0)
Error - aborting creation process


But i'm not using any labels.

Can someone tell me whats wrong in this script and how to fix it?

And here the line numbers where i have inserted some code
37, 82-83, 103-104, 188-253, 341-352, 412-435
hope i don't forgot some.

Line 348 no ${EndIf}.
Line 253 no matching ${EndIf} statements for all 8 ${If} statements.

Stu


Thanks now it compiles and i can install it seems to work correctly but when i install it again to change the "7-zip.dll" i don't get the message to reboot and the file will not be replaced and a manual reboot is also not working.
When i first uninstall it and reboot there is no problem.
Can i force the installer to replace the file even if in use and then reboot or is there another way to fix this problem without having the user do a manual uninstall and reboot?

Here is the code for the "7-zip.dll"


ReadINIStr $QaxX "$PLUGINSDIR\ioB.ini" "Field 2" "State"
${If} $QaxX == '1'
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED 7-zip_shell-icon.dll $INSTDIR\7-zip.dll $INSTDIR
${Else}
ReadINIStr $QaxX "$PLUGINSDIR\ioB.ini" "Field 3" "State"
${If} $QaxX == '1'
!insertmacro InstallLib DLL NOTSHARED REBOOT_NOTPROTECTED 7-zip_no_shell-icon.dll $INSTDIR\7-zip.dll $INSTDIR
${EndIf}
${EndIf}

I suspect you're attempting to replace the installed dll with the same file version so nothing happens, the file is not replaced.
You should try different file versions to see if the code works as expected.


Yes it's the same version but not the same file one has a icon for the explorer shell menu and one not.

It seems that only older files are replaced i have changed the "#define MY_VER_BUILD 0" to "#define MY_VER_BUILD 1" and the older version will be replaced but i can't replace the newer one with old one.

How can i fix this, is there a switch to override newer files?


I have another problem, in this script always "MessageBox" will be called even if the regkey exists and has a valid value also the message shows the value, where is the problem?


ReadINIStr $QaxX "$PLUGINSDIR\ioC.ini" "Field 4" "State"
${If} $QaxX == "1"
ReadRegStr $QaxX HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Far Manager" "InstallDir"
${If} $QaxX <> ""
CreateDirectory $QaxX\Plugins\7-Zip
File 7-ZipFar.dll
Rename 7-ZipFar.dll $QaxX\Plugins\7-Zip\7-ZipFar.dll
Delete 7-ZipFar.dll
${Else}
MessageBox MB_OK "Sorry but i could not find the Far FileManager. ($QaxX)"
${EndIf}
${EndIf}

<> is a signed integer condition test. This isn't VB. Use !=.

Stu