I have a program and tool that we are currently using for testing/interacting with an embedded device. The program is written in C++/CLI.
Previously, I was building in Visual Studios 2010, in which case I could send out the EXE with only a single .DLL - msvcr100d.dll - being required for most computers. This was still not desirable but still pretty reasonable to ask users to put that DLL in the same directory.
However, I've just sent the program, developed in Visual Studios 2015, to another PC, and it's asking for a lot of DLL files. So far:
- ucrtbased.dll
- vcruntime140d.dll
I have tried the /MT option suggested here and it's incompatible with /CLR for reasons I don't fully understand.
I have not changed the code substantially in any way, so why are extra DLLs required? The very same project, compiled from Visual Studios 2010, did not require them.
Is there any way to avoid having to include all these DLLs?
Ultimately we would like to give this application to customers, potentially even executives who may not have a complete technical background. What is the best option to make it easy for them? It is embarrassing to send a program and have it not run, as well as wasting valuable time.
Ideally I would like to maintain the flexibility that it doesn't require administrative privileges to install. I suppose it's not a core requirement, but really it would be great so it could be run just from a thumb drive or by someone who's just an employee without having to go get their administrator. I really want to make this as easy as possible.