I'm running DMD32 D Compiler v2.071.1, on Windows 8.1 (latest update as of 09/19/2016).
When I compile a D file that contains "patch" in the file name, the resulting executable asks for admin privileges. Why?
If I name my file foo.d, everything is fine:
C:\Users\sorbet\Desktop> echo int main(string[] argv) { return 0; } > foo.d
C:\Users\sorbet\Desktop> dmd foo.d
C:\Users\sorbet\Desktop> foo.exe
C:\Users\sorbet\Desktop> echo %ERRORLEVEL%
0
But if I name it patch.d, suddenly I need admin privileges:
C:\Users\sorbet\Desktop> echo int main(string[] argv) { return 0; } > patch.d
C:\Users\sorbet\Desktop> dmd patch.d
C:\Users\sorbet\Desktop> patch.exe

Huh?
This also happens if I name it something that contains "patch" in the filename, like foopatch.d. Why is this happening, and can I disable it?
This is not related to D Language, or DMD. It is a 'feature' in Windows.
Windows checks if the filename of the executable to execute is/has setup.exe or *-setup, or installer.exe or *-installer in it. The same applies for patch. Windows assumes that since programs like setups/installers/patches usually require administrative privileges, it asks the user (you) for administrative privileges.
TL;DR: Windows assumes that a program needs administrative privileges if the name has setup, installer, patch, etc.. Just change the filename, it'll be fixed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With