Always wanted to experiment with Avalon on Windows XP? In this second part of the ‘Hacking Avalon’ series we’re going to install not only Avalon but also some other Longhorn component. In this post I will take Windows XP as example, but the installer is also compatible with Server 2003. Below is a description of the included components and their use.
avalon
This will install the Longhorn Avalon runtime to your computer. You will be able to run any Avalon application and XAML files compatible with 3683. The Avalon compiler is also included for you to build your own Avalon applications (later more on this in another post).
sidebar
Includes all the files needed to display the sidebar. To get the actual sidebar working you will still need to manually patch explorer. Which is something that can’t easily be done.
mygames
Installs the ‘My Games’ subsystem and file-type declaration for game definition files (GDF). This feature is already pretty much broken in 3683 itself so don’t expect too much.
WinFS
Installs the WinFS SQL Server. Since neither Windows XP nor Server 2003 include any user interface for adding metadata to files or for viewing the virtual folders WinFS provides it pretty pointless to use and will mainly be a resource hog.
How does the installer work?
Since many features in Longhorn were originally being developer separately from the operating system they were available as component. The component system in early Longhorn builds is the same as the system found in Windows XP and Server 2003. This makes it extremely easy to install a given component on another version of Windows. ‘Porting’ of the component now comes down to copying the right files and creating a bootstrapper for the component wizard. The Windows Component Wizard does all the heavy lifting; renaming files, registering assemblies and so on.
Using the installer
Before using the Longhorn feature installer, be sure to install .NET framework version 1. You can download the redistributable here.
- Extract the zip –Make sure the path to this directory contains no spaces or the installer will break
- Execute AvalonInstallWrapper.bat
- Wait for the installer to copy some files
- A Windows Component Wizard will appear
- Select the components you wish to install
- When prompted for a directory, point to the LonghornFiles directory in the extracted folder
- Wait for the wizard to finish
Things to try after installation
Now have your very own Longhornified Windows installation there are some things you definitely have to try:
Create a XAML file
XAML files are normally unsupported in Windows XP, but since you just installed Avalon you can open them using Avalon’s shell handler. Clicking a XAML file will open an Internet Explorer window and render the contents of the file. If your XAML file was empty you will be greeted by an Avalon stacktrace complaining about how empty your file is. The download below contains a valid ‘hello world’ XAML file for you to try.
The power of WinFS
Start the ‘Windows Future Storage’ and ‘Windows File Promotion Manager’ services from services.msc. WinFS will start indexing files on the file system and drop a ~DirDB file in the root of your main drive. This is the database containing all indexed file on your. Open task manager and see the huge amounts of RAM WinFS is chewing away on while indexing your files.
Game definitions
In the zip below you will find a Longhorn game definition file. With mygames installed this file will appear as a game and has some extra options in the right-click context menu.
I get an error “Invalid amount of parameters” error and then the setup says that everthing should be intstalled now.
You probably didn’t run the installer from a location of which the patch contained no spaces. Make sure to run it from the root of C or something. That should work.
I had an issue even though I had all the files in the C: directory. It was saying invalid program arguments were specified. it was talking about the /i command for the master inf.
System:
Windows XP 32-Bit SP3 (5.1)
I’m not sure what could be causing that issue. Somehow the call the script makes to sysocmgr with the /i parameter fails.
I just spotted a bug in the code. The code in the batch file is: “sysocmgr /i: %cd%\setup.inf”
But the code that worked for me was “sysocmgr /i:%cd%\setup.inf” no space between “/i:” and “%cd%\setup.inf”. Thought I’d better point that out.
How do I manually patch explorer to use the sidebar?!?
You’ll have to find a way yourself. I don’t think it’ll be easy to do.
How about you create a program that loads the sidebar?
Actually, that’s a pretty good idea and something that’s doable. I’ve done it in the past. Will post about it in the near future.