This is a very proud moment. I’ve just completed my first Guitar Hero track on Expert level. I rock! (with a toy guitar)
Archive for August, 2007
-
Hero
-
Earful of Flies
Ten Negative Sixes, The debut album from Mouthful of Flies is now available to buy. Go and learn about them, then buy the album. You can probably guess the style of music from the band name.
OK this is a little strange, I have the dreamy music from Oblivion playing from one set of speakers, and evil metal coming from the other. It works. Kinda.
-
Tales From Earthsea
I’m going along to watch Gedo senki on Friday, a japanese animation based on the novels by Ursula Le Guin. The film is directed by Goro Miyazaki – son of Hayao Miyazaki, whose work I really like. Anything that you can watch that is basically like getting a big hug has to be good.
I think there is a little controversy around the studio trying to market the film based on the Miyazaki name, despite Hayao Miyazaki having nothing to do with the project. I have no idea what it will be like (guessing a little rough around the edges), but I have some vague, happy memory of reading the books when I was young.
The last book I read was Administrators Guide to SQL Server 2005, the fattest book I’ve ever purchased. Books aren’t really magical anymore. Although the chapter about hard drives, spindles and distributing IO load came close.
-
ClickOnce Applications and Manifest Signing
I’ve recently had to integrate ClickOnce publishing of an application with an automated build and deployment process, and wanted to briefly chat about some of the headlines to watch out for if you need to do this in future.
There are two manifest files required for ClickOnce publishing – a deployment manifest, and an application manifest. The first very simple thing… the deploy manifest is named .application and the application manifest is named blah.exe.manifest. You might be tempted to think that the .application file is the application manifest, but not so.
The project I’m working on has multiple environments that we deploy to, and we’re distributing and updating the ClickOnce application from a website. This means that the deploy manifest can only be generated once you know the environment that you’re deploying to, as it contains the URL to check for updates etc.
In addition, the manifest files have to be signed before the ClickOnce application can be downloaded and installed. This means you have a choice…
- Either you have to generate appropriate manifests upfront for each environment that you might wish to deploy to, and sign each. This would occur while packaging up a release
- Alternatively, you have to ship the pfx certificate for signing in the release package, then generate and sign the manifests once you know which environment you’re deploying to as part of the installation
The second option is a little more flexible, but requires mage.exe (from the Framework 2 SDK) to be available on the install machine. In addition it means the signing certificate is kicking around in the release package, so obviously this is only appropriate for server software where the release and install setup is secure. I do have other justification for why I think this is ok – ask if you’re interested.
There are 2 msbuild tasks available to create the manifest files – GenerateApplicationManifest and GenerateDeploymentManifest. The task provided to sign a manifest takes a certificate thumbprint, which ties up to a cert in the local certificate store. This is not particularly useful, so it’s easier to write a lightweight msbuild wrapper around the mage utility, which can sign a manifest from a given pfx file. An example would be… mage.exe -sign ManifestName -CertFile PfxFilePath -pwd PfxPassword. If you want to generate the pfx to use in signing, take a look at makecert and pvk2pfx.
Be very careful about sequence – you need to generate the application manifest, sign the application manifest, then generate the deploy manifest, and finally sign the deploy manifest. If you generate both the manifests, then sign both, the publishing will fail. Basically the deploy manifest contains the public key token from the application manifest, so the application manifest must be signed prior to generating the deploy manifest.
Unless you need them, you don’t need to worry about the bootstrapper (setup.exe) or the versioned subfolders generated if you publish manually. The main thing is to have the deploy manifest pointing to the current version.
I also found the generated webpage for hosting the application to be quite bloated, so wrote my own. All you need to do is provide a hyperlink to the .application file, and clicking will trigger the ClickOnce runtime to download and install the application.
Phew. Think that’s it for now.
-
ClickOnce Installation Problem on Vista
We have a Winforms application published via ClickOnce, and I came up against a problem with the ClickOnce installation mechanism on my machine (Vista). Linking to the deploy manifest (the .application file) should launch the runtime to download and install the application. On my machine, this was triggering a dialog that prompted me to install the .NET framework (already available), and then proceeded to download the Winfx 3.0 Beta 2 runtime components.
The problem was that the wrong application had become associated with the .application extension – in my case, notepad2. To resolve, click Start > Default Programs > Associate a file type or protocol with a program, then find the .application extension. The current default handler should be set to ‘Application Deployment Support Library’.
In my case making this change then caused the correct behavior when clicking on a link to a .application file. I’m not sure quite how the default changed so easily, but think this was opening the deploy manifest in notepad2, and leaving the checkbox checked to use this application as the default.
-
Back on the Wagon
Occasionally I decide that it would be a great idea to write my own blogging engine from scratch, that does everything perfectly in exactly the way that I would like. The main points being a single installation that can support multiple, radically different sites, with custom templates, total control over markup, clean URLs and general nice semantic output. I even got properly stuck in this time, but I have to grudgingly admit that it’s probably not the best thing to do alongside one of the busiest times in my working life.
The other side effect is that I get excited about all the features I’m planning to build, then stop blogging until the new platform is ready. Enough! I accept that while I would love to build such a thing, it’s a little daft right now. Plus, Wordpress does most of what I need anyhow.
I’m just playing around with Windows Live Writer, and I’m very comfortable already. Definitely a much more useable way to publish than the Web based admin interface on Wordpress.
