4 ms·
Microsoft's current policy of not adding new symbols to an existing CRT DLL is justified IMO. Any possible way of messing up a Windows machine will happen on so
by mwcampbell 5y ago
Microsoft's current policy of not adding new symbols to an existing CRT DLL is justified IMO. Any possible way of messing up a Windows machine will happen on some poor user's machine somewhere, including downgrading libraries. So if Microsoft is able to make their systems more robust in the face of misguided users (edit: and misguided third-party developers), that's good.
- sillysaurusx 5y agoI recently tried to get MSI Afterburner to run on a pretty standard new-ish windows 11 gaming pc. Two hours later, I gave up. The mysterious side-by-side manifest error wasn’t solvable. I installed all the redists, and even installed a neat redist installer I randomly found on GitHub which brute-force-installs every possible redist known to humanity. Didn’t matter. The side by side error was just insurmountable. Now, as a former gamedev who grew up on windows, I have a soft spot for Microsoft. I love me some visual studio. Yum yum, that IDE was cool a decade before Jetbrains showed everyone why IDEs are cool. But it’s been… eight years now since I switched to macOS, and more generally exited from the MS development ecosystem. I don’t know, man (or woman or they). Microsoft’s current policies are hopelessly complicated compared to unix. I’ve been programming for almost two decades. If I can’t analyze and fix an error that clearly shows exactly which manifest entry is missing, well… I think we’ll just agree to disagree that Microsoft is making nice decisions about ABIs and related ideas. Here’s a wild idea: just let a program run, and trap errors into an error log. Jetbrains does it. Their early access IDE happily lurches along even with dozens of Frankensteinesque errors coming up. Refusing to start because of an ABI mismatch (or indeed, dying at the first error) was one of the most unfortunate decisions in OS design.
- secondcoming 5y agoStrange, Windows is excellent when it comes to allowing old applications to run on newer releases.
- matheusmoreira 5y agoThat's no longer the case. There's a ton of software that simply doesn't run anymore. Last time I used Windows years ago, there were at least 10 old games in my Steam library that wouldn't even start. I wouldn't be surprised if at some point Wine becomes better at running these applications than Windows itself.
- Schroedingersat 5y agoThat point was mid 2020 some time
- JonChesterfield 5y agoXP era programs are now consistently easier to run on Linux than on windows 10/11 for me.
- notriddle 5y agoWine does that thing where it traps errors to a log instead of killing the program. Great for compatibility. Probably not so great for security. I’d expect most cases where Windows switched from being lenient to being strict are exploit mitigations.
- nyanpasu64 5y agoIf I'm not misremembering, many years ago (Windows 7 era) I had machines with 3 different 2010/2012 redistributables of the same bitness (32 or 64-bit) in Programs and Features. Was that actually a thing, or did I read it wrong at the time?
- creshal 5y agoThat was a thing until VS2015, as far as I can tell; the older versions let you install all minor releases in parallel. And many Windows developers choose to rather install the specific minor version they used globally, instead of just vendoring it in the program folder (even though the license allows it, hence "redistributable"). Right now my machine has no less than 4 versions of the 2008 redist installed globally, for each x86 and x64.
- nyanpasu64 5y agoIs it safe to uninstall all but the latest version of a given year's redistributable?
- mwcampbell 5y agoSpeaking of what Microsoft's VC runtime license does and doesn't allow, are there any restrictions on statically linking the runtime instead of redistributing the DLLs?
- deleted 5y ago[deleted]
- zamadatix 5y agoWhen you get the SxS error it should be telling you exactly where to look in the message "Please see the application event log or use the command-line sxstrace.exe tool for more detail". The application event log in event viewer will have the detailed error message and sxstrace will inspect a given file and tell you what it depends on. At no part does anything suggest shotgun installing every redistributable you can find is something that is going to help e.g. it very well could be you already have the right redistributable (which is likely since they are packaged in the Afterburner installer itself) but something about the system is borked preventing it from loading. Nothing about this or the way redists are managed seems hopelessly complicated. Also there is nothing it can do but die at the first error in this case, it's not side modules or components failing to load it's the stuff like memcpy and iostream for the main process of the app.