- Dev Blogs
- Visual Studio Setup
Visual Studio Setup
Installation and containerization of the Visual Studio family of products
Latest posts
Updating Assemblies In-place with MSI
A frequently-asked question is how to install an assembly into the Global Assembly Cache (GAC) and overwrite the old assembly that has the same strong name. This is known as in-place updating.The first answer is "don't". Besides being a trusted global store for managed assemblies that is intrinsic to assembly resolution, the GAC also provides side-by-side versioning. Multiple versions of a managed assembly can exist in the GAC at the same time and the Common Language Runtime (CLR) loads a version based on the manifest for a calling assembly, or the calling assembly can load an assembly by its stron...
How to Fix Administrative Deployment for 64-bit .NET Framework Redistributables
If you've tried to install the .NET Framework 2.0 Beta 2 redistributable for either ia64 or x64 from an administrative installation point, you might've seen an error like the following: While investigating patching scenarios for 64-bit SKUs I found that for source extraction and administrative installs the 32- and 64-bit files map to the same paths. This, unfortunately, shipped in beta 2. The problem this causes is that a 64-bit call to will fail to load a 32-bit DLL such as mscoree.dll. Only the 64-bit libraries wow64.dll, wow64win.dll, wow64cpu.dll, and ntdll.dll can be loaded into a 32-bit process, so the er...
Avoid Deadlocks in your Script Host when Tearing down JScript
A couple teams recently reported an issue where their script host hung due to deadlocks. Since jscript.dll was in the call stack for the hung thread it didn't take long for the bug to wind up in our lap, since CPX also sustains Windows Script. The problem was that as one thread was exiting and was passed to the callback in jscript.dll, the JScript garbage collector was releasing objects that were not yet released. If any of these objects in their implementations or the destructors — when applicable — wait on other threads to be torn down, a deadlock occurs in the OS loader lock, which prevents mult...
Raw Images to be Supported in Longhorn
As a photography enthusiast and the son of a professional photographer (SLR, or "single lens reflex"), I am excited to read that Longhorn will support raw image formats from several manufacturers of digital cameras and digital SLRs.Raw images are pre-pixilated dumps from the image sensor - a CCD - that are comparable to film. Keeping raw images as master copies allow you to produce anything of equal or lesser quality. While most high-resolution JPEGs are suitable for most enthusiasts and even some professional uses, the raw image format - a manufacturer proprietary format, unless Adobe succeeds in getting ma...
Shell Extensions for .NET Assemblies, Version 1.3.1976
Today I released version 1.3.1976 of my Shell Extensions for .NET Assemblies. This version adds support for Windows Me and fixes a few bugs to provide column handlers and overlay icons for Windows Me, Windows 2000, and newer.Among the fixes was a crashing bug that occurred because of an access violation exception when sorting by the public key token column in Windows Explorer. Because IAssemblyInfo::IsAssembly may return S_FALSE the SUCCEEDED macro is hardly sufficient. A null BSTR was be assigned to VARIANT::bstrVal when VARIANT::vt was set to VT_BSTR. Thanks to Virtual PC 2004, base images of Windows Me and XP ...
New Logo for CPX
The Developer Division Customer Product-lifecycle Experience team has a new logo thanks to his impromptu logo contest on Channel9. CPX voted for several logos over the last couple of weeks and the winner was chosen.
Unsupported Flag Really is Unsupported for NT4 Services
We are going through test passes on some new functionality for our patch build system and ran into a bug in a service I wrote to handle post-reboot commands without requiring an interactive login. The documentation for the SERVICE_STATUS structure for NT Services (a.k.a. Windows Services) states that the SERVICE_ACCEPT_STOP (0x40) is not supported under Windows NT (i.e., Windows NT 4.0). Typically in Win32 unsupported flags are passively ignored. They are masked out by the bitwise check for the flags of interest with statements like the example below: As I found out today, however, the service control codes&...
MSN Search Toolbar with Windows Desktop Search Released
MSN has released the final version of their MSN Search Toolbar with Windows Desktop Search, formerly known as the MSN Toolbar Suite with Desktop Search.Not a lot seems to have changed from a high level except for the user interface. The desktop band is smaller and the system tray (systray) icon has changed slightly, but build 02.01.0000.2214 is a breath of fresh air since build 02.01.0000.1203 has been around for quite some time. I find this tool extremely useful at work in a culture where email is a primary means of communication and my inbox scrollbar is as small as it can possibly be.
Windows Installer 3.1 Redux
Last night the Windows Installer 3.1 redistributable was uploaded back onto the Microsoft Download Center. Version 2 of the redistributable addresses the issue where Windows Installer 3.1 would fail when trying to silently update a file under Windows File Protection.