BLOGMicrosoft DLL hell 2.0: the Side by Side assembliesdimanche, 04 octobre 2009
This not just a rant against microsoft but a pratical article for all developpers using Microsoft Visual Studio 2005 to build their product. At the beginning of August 2009, Microsoft issued a security patch KB971090 on its Microsoft Visual Studio 2005 product: the result was that when we recompiled our plugin with this updated Studio, it would not run on other PCs. The symtoms were:
You can easily confirm the issue by configuring your project to generate an external manifest for your application and see if you have someting like: version='8.0.50727.4053' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
In your manifest. Hopefully, some smart people suggested four solutions:
We also noticed that some client PCs running Windows Vista had updated build 3053 (not 4053) and when we tried to ship build 4053 as private assembly, Windows complained that the two assemblies were in conflict (although we were shipping the MFC and CRT as private assemblies). This conflict message was so undocumented that nobody seems to have encountered the situation. So the simplest solution was to remove this security fix. I am not sure this is sustainable when Windows 7 will start to be around ... 16 Commentaire(s) - Laissez un commentaireMr.
lundi, 05 octobre 2009
I had the exact same problem. I was forced to take the upgrade via Windows update. If you are using WiX and MSI as your installer, reference the following merge modules in your script. This causes all the necessary DLL's to be included in your setup and to be installed in the correct Windows\WinSxS folder. Merge Modules and MSI
lundi, 05 octobre 2009
The names of these files did not copy. Here they are again. C:\Program Files\Common Files\Merge Modules\microsoft_vc80_crt_x86.msm C:\Program Files\Common Files\Merge Modules\Microsoft_VC80_MFC_x86.msm C:\Program Files\Common Files\Merge Modules\Microsoft_VC80_MFCLOC_x86.msm Not a real problem
lundi, 05 octobre 2009
If you don't link statically, you always need to include the redistributables. You can simply not know what stuff the end-user has on the system. On a fresh system, there isn't even any MFC dll on there. Quite frankly, anybody who doesn't do this stuff since yesterday know that. Me
lundi, 05 octobre 2009
I would suggest the poster of this blog sits down with a Programming 101 book and then again with a Programming on Windows 101. He is blaming his own failures as an amateur programmer with less clues than the average monkey on a significant improvement to handling dynamic libraries on Windows. Mr
lundi, 05 octobre 2009
For anyone who hasn't realised this yet: this guy is a clueless idiot who doesn't really know what he's doing. He's also posted this laughably inaccurate article on Slashdot in the hopes that the vocal anti-MS contingent will flock to his aid and get some free publicity for his shitty software. Fortunately there are actually people on Slashdot who recognise this idiocy for what it is, and he has been called out. Bigger problem looming
lundi, 05 octobre 2009
There is even a bigger problem looming as any application which binds to an older SxS-Version of these DLL's won't be working when you install on a fresh system that only contains the newest SxS version in it's storage. To get that application working again you have to install the *old* vcredist-Version. This applies to both VS2005 and VS2008 (after the recent major update)... Mr.
lundi, 05 octobre 2009
Thank you! Since a month we've been experiencing problems where our software would work on 80% of the machines but not the other 20%. For desktop and Firefox plugin we solved it through using the redist stuff, but if anyone knows of a way to solve this for an IE plugin I would me much obliged. Otherwise MS themselves have driven the final nail into our IE support:-( Link statically
lundi, 05 octobre 2009
If you simply can't supply the redist, just link statically. Project properties->C/C++->Code generation and select the non-DLL runtime library. Obvious troll.
lundi, 05 octobre 2009
>This conflict message was so undocumented that nobody seems to have encountered the situation. Oh man, is this guy for real? 'NO ONE EVER RAN INTO A PROBLEM BEFORE, SO CLEARLY IT'S AN UNDOCUMENTED ISSUE, BECAUSE IT'S NOT REMOTELY POSSIBLE THAT WE SCREWED UP, THAT'S JUST ABSURD!' SxS vs Security
lundi, 05 octobre 2009
What could go wrong in this directory? GDI exploit? I see the gdi32.dll thingy is in there. remember the sans gdi scanner? Do we need some more scanners like that? And hey (since I got your attention), how can we install IE7 and remove IE8, if IE8 is slipstreamed SP3? Crap I just bought an mbox 2. I am currently sitting with an partially un-installed IE8 an "installed IE7" and no browser except maxthon works. (At least I can get updates via maxthon) Man, there is no perfect OS. Workaround link
lundi, 05 octobre 2009
seems the link to the workaround I authored is missing above. I can say that my workaround has generated hits of about 100 per day on average since I posted it nearly 2 months ago. Workaround link is here: http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090 Mr
mardi, 06 octobre 2009
Yes, updating the runtime with the (still) weak dynamic library support in windows without communicating the obvious consequences was a "summer intern blunder" at MS no doubt (flame, flame), but it can happen to any major software developer when the ordinary staff isn't in place. The numerous releases of upgraded components from MS was an indication that something was not right in Redmond this summer. Anyway, it taught us (targeting windows embedded) to use handcrafted manifest files to make sure we all build against the runtime we have preinstalled on our locked down, encrypted OS installations out there. It's common sense, but we had missed it until this release. Honestly, I think a lot of developers using side-by-side misses this in the real world. Static linkers are people who give up too easily. I think the worst part was that the patch was described in a KB article talking about ATL, which is a utility template library which I hoped when I read it had nothing to do with the runtime. Checking the patch contents (and size) clearly showed that the runtime libraries were included too though. In all I think MS deserves some friendly spanking for the communication around this patch, though it is completely up to the developers to track patches and manage them, especially VS Studio ones... Also Microsoft Sweden didn't handle it very well as someone there sent out a "panic message" about it that spread like a virus in otherwise empty mailboxes during the calm of the sumer... :/ Worked
vendredi, 18 juin 2010
Hey All, This worked out well for me! To all of you freaking out whats your problem? Bunch of arrogant wanna be software engineers that think your better then everyone else thats ever touched a keyboard. Just chill out will ya? O and to the dude who was like freaking out about it being reffered to as an undocumented bug... anyone who has ever used microsoft for more then five minutes knows they have lots of bugs both documented and undocumented so I fail to see the problem? If it wasnt a bug, it wouldnt cause us any problems now would it? Microsoft writes lots of code so of coures they are gunna mess some stuff up! Thanks! nike free run
jeudi, 02 septembre 2010
UGG Short Boots has a strong comfort, but also very fashionable, which is the leading fashion and trend of UGG Mini Boots. The new products of UGG Bailey Button models provide with 10 different colors for your choice to meet a variety of customer preferences. The UGG Classic Short of the other features are: a flexible lightweight, wear-resistant anti-slip, comfortable and warm. UGG Nightfall Boots low price but good quality, are exported to the UK and other parts of the world. UGG Short Boots UGG Mini Boots UGG Nightfall Boots UGG Evera Shoes UGG Bailey Button Triplet Bailey Button Boots UGG Cardy Boots UGG Classic Short Ugg Mini Boots Nightfall Ugg Boots ugg ultra short boots Ugg ultra short Boots Ugg Sundance II Boots UGG Argyle Knit Boot Ugg Infant Erin Boots Gray Short Boots Bailey Button Boots Ugg Classic Boots Gray Ugg Boots Bailey Button Triplet Ugg Evera UGG Cardy Boots Classic cardy boots Ugg Nightfall boots Ugg Mini boots Ugg Infant Erin Boots Classic Tall Stripe Cable Knit Ugg Sundance II Boots Ugg Ultra Short Boots Ugg Ultra Short Boots Ugg Short Metallic Boots nike free run
jeudi, 02 septembre 2010
[url=http://www.ebootsalestore.com/] UGG Short Boots [/url] has a strong comfort, but also very fashionable, which is the leading fashion and trend of [url=http://www.ebootsalestore.com/classic-mini-ugg-boots-c-5.html]UGG Mini Boots[/url]. The new products of [url=http://www.ebootsalestore.com/classic-short-ugg-boots-c-4.html]UGG Classic Short[/url] models provide with 10 different colors for your choice to meet a variety of customer preferences. The [url=http://www.ebootsalestore.com/bailey-button-ugg-boots-c-12.html] UGG Bailey Button [/url] of the other features are: a flexible lightweight, wear-resistant anti-slip, comfortable and warm.[url=http://www.ebootsalestore.com/nightfall-ugg-boots-c-8.html]UGG Nightfall Boots[/url] sale low price but good quality, are exported to the UK and other parts of the world. [url=http://www.bootssalestore.com/]Bailey Button Boots[/url] [url=http://www.bootssalestore.com/] Ugg Classic Boots [/url] [url=http://www.bootssalestore.com/]Gray Ugg Boots[/url] [url=http://www.bootssalestore.com/ugg-bailey-button-triplet-c-27.html]UGG Bailey Button Triplet[/url] [url=http://www.bootssalestore.com/ugg-evera-shoes-c-26.html]UGG Evera[/url] [url=http://www.bootssalestore.com/ugg-classic-tall-boots-c-2.html]UGG Classic Boots [/url] [url=http://www.bootssalestore.com/ugg-classic-cardy-boots-c-1.html]UGG Cardy Boots [/url] [url=http://www.bootssalestore.com/ugg-classic-short-boots-c-3.html]UGG Short Boots [/url] [url=http://www.bootssalestore.com/ugg-nightfall-boots-c-7.html]Ugg Nightfall Boots [/url] [url=http://www.ebootsalestore.com/classic-mini-ugg-boots-c-5.html]Ugg Mini Boots [/url] [url=http://www.bootssalestore.com/ugg-short-metallic-boots-c-5.html]Ugg Short Metallic Boots[/url] [url=http://www.bootssalestore.com/ugg-ultra-tall-boots-c-9.html]Ugg Ultra Tall Boots[/url] [url=http://www.bootssalestore.com/ugg-ultra-short-boots-c-10.html]Ugg Ultra Short Boots[/url] [url=http://www.bootssalestore.com/ugg-sundance-ii-boots-c-8.html]Ugg Sundance II Boots[/url] [url=http://www.ebootsalestore.com/classic-mini-ugg-boots-c-5.html]Ugg Mini Boots [/url] [url=http://www.ebootsalestore.com/classic-short-ugg-boots-c-4.html]UGG Classic Short[/url] [url=http://www.ebootsalestore.com/classic-cardy-ugg-boots-c-1.html]Classic Cardy Boots[/url] [url=http://www.ebootsalestore.com/bailey-button-ugg-boots-c-12.html]Ugg Bailey Boots[/url] [url=http://www.ebootsalestore.com/] UGG Short Boots [/url] [url=http://www.ebootsalestore.com/classic-mini-ugg-boots-c-5.html]UGG Mini Boots[/url] [url=http://www.ebootsalestore.com/classic-short-ugg-boots-c-4.html]UGG Classic Short[/url] [url=http://www.ebootsalestore.com/ugg-evera-shoes-c-20.html]UGG Evera Shoes[/url] [url=http://www.ebootsalestore.com/gray-classic-short-ugg-boots-p-24.html]Gray Short Boots[/url] [url=http://www.ebootsalestore.com/ugg-bailey-button-triplet-c-21.html]Ugg Bailey Button Triplet[/url] [url=http://www.ebootsalestore.com/]UGG Bailey Boots[/url] [url=http://www.ebootsalestore.com/]UGG Mini Boots[/url] [url=http://www.ebootsalestore.com/]UGG Nightfall Boots[/url] Laissez un commentaire.. |
It might not be "convenient", but it's the law
If you use the Visual C++ library, and you do not link your application as static, then you _must_ install the Visual C++ Redistributable, because your application uses it. This is something you should have been doing anyway, and if you weren't then your program probably broke for a number of users who didn't have it installed already.