i want to make VS copy the .lib-file it created after the build process to a specific folder.
So i went to the project config, post-build event, and entered the following command:
if exist $(TargetPath)
xcopy "$(TargetPath)" "C:\Users\Incubbus\Documents\Visual Studio 2010\My Libraries\z.lib" /Y
But instead of copying the process fails after i click “build” and i receive the following error:
error MSB3073: The command “if exist
C:\Users\Incubbus\Documents\Visual Studio 2010\My
Libraries\MyNetWorkProject\Debug\IncNetworkLibD.lib xcopy
“C:\Users\Incubbus\Documents\Visual Studio 2010\My
Libraries\MyNetWorkProject\Debug\IncNetworkLibD.lib”
“C:\Users\Incubbus\Documents\Visual Studio 2010\My Libraries\z.lib” /Y:VCEnd” exited with code 2.
I am also wondering about the :VCEnd in the command-string of the error message <- Maybe this is the reason? How to get this solved?
Any help and hints would be happily consumed :)…
partial solution:
EDIT: it looks like the renaming part (Inc.lib to z.lib) makes trouble, when xcopy asks whether this is a file or a directory…it works when i just copy the originally named file to a directory instead of copying renamed
Xcopy documentation says the following:
Specifying whether Destination is a file or directory
If Destination does not contain an existing directory and does not end with a backslash (\), the following message appears:
Press F if you want the file or files to be copied to a file. Press D if you want the file or files to be copied to a directory.
You can suppress this message by using the /i command-line option, which causes
xcopyto assume that the destination is a directory if the source is more than one file or a directory.You need the opposite, but there is no such switch.
The solution is proposed here: https://stackoverflow.com/a/4283533/532647.
It is suggested to prepend the
xcopycommand withecho f |prefix, which basically does the following: it simulates a user pressingfkey whenxcopyasks.So your command should look like:
Operator
|just pipes the output ofecho f(==f) intoxcopycommand and it is read when appropriate. More information about output redirection here: http://ss64.com/nt/syntax-redirection.html.UPDATE:
As Govert points out, this hack won’t work under a localized version of Windows.
However, another hack will work:
Appending destination file name with an asterisk
*makes xcopy not ask whether destination is a file or a directory.