TIP: Make sure your required DLL's are in the right place to avoid validation failure
This may seem like a no brainer, but with the recent change in validation on how MSI Installation it may get you too. I have to admit that this one got me.
I received one of the emails today with the following subject: "Urgent: Please read-Changes to your Atom application are requested"
Let's say you have App.exe and RequiredLibrary.dll. When the shortcut to App.exe has a startup path that contains the two files all works well.
Now what happens if the startup path changes in your link?
Your App.exe will be executed, then fail because it has no idea where to find RequiredLibrary.dll.
* The App Store can do just this using MSI parameters during install, the target and start-up paths may differ from what you expect.
Any or all of the fixes may apply to your project:
1.) Place your DLL's in the appropriate folder (example c:\windows\system\)
2.) Register your DLL's (COM) if needed
3.) Install your DLL's into the GAC (Global Assembly Cache)
* Note: Do not forget to add a strong named key
Best of luck!
Update:
ww8520 has found a great solution to problems with GetModuleFileName:
"GetModuleFileName( NULL, strExePath, MAX_PATH ) is getting the path of the executable file of the current process. See http://msdn.microsoft.com/en-us/library/ms683197%28VS.85%29.aspx. "
http://appdeveloper.intel.com/en-us/node/1102#comment-3224



