Apparently, access is denied. The system tries to protect itself and their users from the nasty things you are trying to do. I just wonder if you devised some steps to remove the DLL if you can copy it. You could create some installation package and run it as administrator, but it would make the problem even nastier :-(.
This is not a legitimate way of deploying applications. If the DLL is used in your own application, nothing prevents you from having it in the same directory where your other executable files are. If you want to develop a system where you have several products reusing the same DLL, you still can keep them in the same executable directory or place them in sub-directories. You still can load the DLL from a parent directory. There are many other possibilities for non-intrusive deployment schema.
See also:
http://en.wikipedia.org/wiki/DLL_Hell[
^],
https://msdn.microsoft.com/en-us/library/ms973843.aspx[
^],
https://msdn.microsoft.com/en-us/library/ms973843.aspx[
^],
http://en.wikipedia.org/wiki/Dependency_hell[
^],
http://en.wikipedia.org/wiki/Portable_application[
^].
—SA