Protection of DLLs
App uses some third-party DLLs, which should be protected from any outside access. However, the app should have full access to this DLLs. Are there a ways to do this without writing DLLs on hard disc(including extracting DLLs to TEMP directory during runtime)?
If you are using a DLL as a part of the application, the OS needs to know where to find it, so it need to exist somewhere in the file-system. If you do not like that, I suggest you ask the third party people for a static version of the library, so that you do not HAVE a .dll at all.
Maybe you want to use remote assemblies? Also look into assembly signing. Also I may be wrong, but I'm pretty sure you can't "statically" link a library in C#, to do that you would need the actual source code to build into your assembly.
If the third party license requires you to do this, then they should have provided a mechanism for it.
Originally Posted by Poche
If the license doesn't require it, why are you wasting your time on it?
There is no license requires, but it still strongly recommended.
Looks like there is no opportunity to make static link of the library in C#.
valaris: remote assemblies-does it means the app should always have access to the Internet?
Looks like BoxedApp Packer can help much. It squeezes all ActiveX controls, dynamic libraries, and just all kinds of files that original application depends on into a single executable file and run it just as if that was a regular application installed the regular way... BoxedApp Packer creates processes directly from memory, so as soon DLLs doesn't exists on HDD they are protected from other outside access. I think it’s exactly what is needed.