Share via


Custom Install Locations for the SDK

By far the question I get most often (beyond "why isn't my SDK installing? which has a lot of possible answers) is "Why can't I choose my own install locations for the Windows SDK?" It's a great question, and it's partially a result of my bad messaging on this issue that it continues to come up.

The short answer is that it's top of the queue for the RC1 release, but did not make it in for Beta 2. That means that if you don't have sufficient disk space on your c: drive, the setup will fail. It will now fail gracefully, since we've put in place the mechanism to do that, but it will still fail. In Beta 2, you will not be able to choose custom install locations.

The reason for this comes back to a series of tradeoffs I made when I took on the job as Setup Program Manager last June. At that time, with the guidance of my managers, I launched a process to revise our setup.exe, with the end goal of chaining MSIs, adding maximum flexibility for our process, and having extensible managed code that could be reused around other projects. We even talked at one point about putting our revised code out there as a sample app in the SDK, but I'm not sure if we're going to have the time to pass the high bar for inclusion in that area. We also decided to revise our web setup in order to make it as modular as possible.

As a new PM, I naively expected this project to run relatively quickly. I had unrealistic expectations that the project would only take a few months, surely not beyond the first of the year. Did I mention how naive I was? I had no idea of the time conflicts, the complexity of the project, or the problems I would have up front with ramping up as a new PM (previous to this I build the MSDN online Library).

Added to that was the unique case of custom install locations. We have an issue in Windows Vista where content installed to the Program Files folder can't be modified. Samples, of course, need to be modified; they're created to be modified. So there was a good amount of churn around creating a spec and mockup for the install locations. Due to this unique need, locations dropped lower in the stack of tasks.

Then, as the project went along, our goals for each release kept shifting. We had originally planned on releasing custom install locations for Beta 2, but there was broad consensus that the main effort in this milestone should be in improved error handling and setup hardening, essentially resolving open bugs and adding the ability to fail gracefully when things don't proceed as expected. I think that's the right decision, but it leaves me anxious to finally get to install locations.

Custom install locations is top of the queue for RC1. As soon as we declare Beta 2 closed and branch the build, setup will take on that project. It will be fully tested early on, and I'm hoping we can close on it early.

In the meantime, though, we're just going to have to ask you to continue to be patient.