Monday, March 22, 2010

Windows Phone 7 Application Bar Templates

I created templates for the Application Bar images for myself and I'm sharing them in case they would be useful to anyone else. Here are the PSD and PNGs:
The PSD is broken up into layers so you can easily hide the template to save off your icon. Just stay within the white square on either template (inner 26x26) and you should be good to go.

Boxee Launcher

Started another new Codeplex project:

This is the sibling of Hulu Launcher. Boxee Launcher is a simple Windows Media Center add-in that attempts to launch Boxee and manage the windows as seamlessly as possible.

Monday, March 15, 2010

Hulu Launcher

Started a new Codeplex project:
Hulu Launcher is a simple Windows Media Center add-in that attempts to launch Hulu Desktop and manage the windows as seamlessly as possible.

Check it out if you're into that sort of thing.

Friday, March 5, 2010

How to Create and Modify ClickOnce Manifests

Working with ClickOnce manifests can be a pain, especially if you need to integrate that work into your build process. There are several tools you can work with and potentially automate.
  1. mage.exe - This is the backing process behind mage.ui. In my opinion, mage.exe is the next step up from the "Publish" tab in Visual Studio -- it works, but only for basic cases. Comes with the .NET SDK.
  2. mt.exe - This is a great little tool that can validate, sign, and update the hashes in your manifests. It can also merge manifests and dump manifests from executables, as well as extract COM information to generate your own Reg-Free COM information (better than the Visual Studio build process does, actually -- most of our Reg-Free COM manifests are manually built with mt.exe).
  3. Microsoft.Build.Tasks.Deployment.ManifestUtilities - This namespace is a god-send, although it doesn't work with VSTO deployment manifests (in fact, it will probably mangle them). I believe the Visual Studio build process uses these classes internally, but I'm not sure. You can use this to modify application and deployment manifests in just about any way imaginable. To get access to this, add a reference to the Microsoft.Build.Tasks assembly. 

    To read a manifest using this, start at ManifestReader.ReadManifest(path) and work from there.
    To sign your manifests (or other files) from code, take a look at SecurityUtilities.SignFile(certThumbprint, timestampUrl, path)