Note that when you pull a file from your resources onto a disk and then execute code on it, you can run Windows “Data Execution Prevention” - basically, Windows tries to automatically determine if something should be code or data, and if it looks like data (which will have resources), then this will prevent the data from being executed as code.
This becomes a particularly sticky problem if your .NET assembly is used over the network instead of a local disk - there are all kinds of .NET security configurations that might prevent this from working correctly.
Another option and without knowing the details of your project, take this with salt: add the .exe.readme file to your installation, which describes any curious user or IT staff, why there is an executable file that is waiting in the installation directory :)
Mike
source share