Slashdot Mirror


"Side By Side Assemblies" Bring DLL Hell 2.0

neutrino38 writes "This is an alert for all developers using Microsoft Visual Studio 2005. At the beginning of January, Microsoft issued a security fix for Visual Studio 2005 forcing the use of new dynamic libraries (DLLs) by all applications compiled with this IDE. Basically, applications compiled with Visual Studio 2005 will not work anymore on an ordinary (non-dev) PC unless the newer DLLs are installed. And we found out that this is true on fully updated PCs. I just posted some details and some suggested fixes." Read below for some more background on Microsoft's so-called "side by side assemblies."

For those unfamiliar with the Microsoft world, native microsoft applications written in C++ rely on dynamic libraries. Two of them are infamous: MSVCRT.DLL and MFCxx.dll. Because of software evolution and security fixes, multiple versions of these DLLs were often present in the system, causing application instability. Where Linux implemented a simple suffix notation on the dynamic libraries, Microsoft created a new beast in 2001: the Side By Side assembly. These are basically DLLs with a companion XML file that identifies them. The XML file contains a digital signature and when the system binds these DLLs dynamically to an application, it checks that the signature of the DLL matches the DLL itself. When everythings runs well, this is pretty transparent. But when issues arise, it becomes excruciatingly difficult to troubleshoot and fix. DLL hell is not over.

2 of 433 comments (clear)

  1. Re:Also... by asliarun · · Score: 0, Offtopic

    I digress from the topic under discussion, but you should buy a Nehalem processor laptop (Core i7), install VMPlayer, and run XP as a VM. Alternately, you can wait a few days for Windows 7, which has XP compatibility mode built-in (also running as a VM). The reason why I specifically say Nehalem is because the VM optimization is dramatically better than Core2Duo, and speed-wise, you might still see a performance increase even though you're running your code in a VM. The newer AMD processors are quite good at VMs as well, and in fact, Nehalem only catches up to AMD in VM performance. However, Nehalem will give you a definite edge in terms of int and float number crunching performance.

    Please also make sure that your hard-disk is not bottle-necking you. Get an SSD if you can afford it, or at least go for a 7200rpm drive.

  2. Re:And by all developers you mean by BenoitRen · · Score: 0, Offtopic

    Please don't abuse the apostrophe. "it's" = "it is". You've used "it's" twice where "its" should have been used.