PDA

View Full Version : Copy files at end of installation



glewis64
11-15-2017, 02:17 PM
I have an installer that installs our software as well as runs an installer from another 3rd party. After the 3rd party installation finishes I need to copy some dll's into their Program Files folder. The 3rd party installer sets some environment variables which tells me the directory their software installed in. However my "Copy File(s)" is not working. Here's my script code:


! Copy OpenSSL libraries to Synergy folders
If %WOW64STATUS% Equals "1" Then
! 64-Bit Synergy
Copy File(s) from "%TMPDIR%\1033c_x64\libeay32.dll" to "%%SYNERGYDE64%%\dbl\bin"
Copy File(s) from "%TMPDIR%\1033c_x64\ssleay32.dll" to "%%SYNERGYDE64%%\dbl\bin"

! 32-Bit Synergy
Copy File(s) from "%TMPDIR%\1033c_x86\libeay32.dll" to "%%SYNERGYDE32%%\dbl\bin"
Copy File(s) from "%TMPDIR%\1033c_x86\ssleay32.dll" to "%%SYNERGYDE32%%\dbl\bin"
Else
! 32-Bit Synergy
Copy File(s) from "%TMPDIR%\1033c_x86\libeay32.dll" to "%%SYNERGYDE32%%\dbl\bin"
Copy File(s) from "%TMPDIR%\1033c_x86\ssleay32.dll" to "%%SYNERGYDE32%%\dbl\bin"
End

I have also tried Set Variable X to Function:Get System Info(Expand Environment Variable) and used that variable on the copy. That didn't work either.


What do I have wrong?

linder
11-16-2017, 05:07 AM
Hello,

first of all, what is your location "%TMPDIR%\1033c_x86" and "1033c_x64"? Do you create the subfolders "1033c_x86" and "1033c_x64" under the temporary setup folder? How do you do this and how to you copy the .dlls to this sub-folder?

On a x64 Windows 10 machine, %TMPDIR% looks like this:

C:\Users\FRIEDR~1\AppData\Local\Temp\0d3d6080-cabd-11e7-4823-03175c410029

The last sub-folder is an unique folder created at runtime. So are you saying that you add a "1033c_x86" and "1033c_x64" sub-folder to that temporary path at installer startup and copy your libeay32.dll etc. files into the folders?

IMO, it does not work because you have the source folder (copy FROM) wrong. And then the target folder (copy TO) ... you have defined "%%SYNERGYDE32%%" (please note the double %%). Is there a reason for using %%?

What is the value of %%SYNERGYDE32%% and %%SYNERGYDE64%%? Are these system environment variables or do you set the values at runtime?

I would suggest to do the following to test your values:

1. Add a "Display Message Box..." script action before your first copy call and display:

%TMPDIR%\1033c_x64\libeay32.dll

The check if you have the file in the displayed folder location.

2. And display %%SYNERGYDE64%%\dbl\bin in a Message Box to see what the value really is at runtime.

I think both your source and target locations are incorrect and as a result, the Windows Copy File API can't copy the files.

Does this help?

Friedrich