Saturday, April 12, 2008

Long Road

I began writing my final report this week. It sums up my learning throughout the course and the development of my project. After working on it for several hours I realize how much I've developed this semester. At the beginning of this project I had no idea how
I was going to make this work. I now have a good understanding of several technologies including .msi's, Wix and Xml.

When I started this project I had no idea what I was doing or how I was going to create .msi files. Soon after figuring out Wix I was able to create a Wix file that packages up Firefox. Then I was able to adapt that script to the newest vesion of Firefox. From there I was able to create C# code that actually creates a Wix script based on a Firefox installation. I never expected to get as far as I have with this project.

My learning throughout this course has not only helped me better understand Wix but it has actually helped me out in real life. I recently obtained a position with a company working closely with XML files. All in all I'm glad that I took this course and I hope to continue to work on my project in the future.

Wednesday, April 9, 2008

The Final Build

With my 0.9 build working properly (minus some small bugs) I am on my way to completing my final build. My .9 build had some very concerning bugs in it that I must fix for my 1.0 build. One of these bugs has to do with Wix and the way that Wix build scripts. To properly follow Wix formatting, Directory and Component identifications must be unique. Their id's should also reflect their name and this can be hard sometimes. In several area's of the Firefox folder there are folders called chrome or default. The way I've written my program is to take a random letter and attach it to the end of these folders . The problem with this is that if that 'random' letter happens to match anther 'random' letter then the program will not compile and a .msi will not be created. To get around this I have to figure out a smarter way of naming my folders but since they can sometimes be no longer than 6 characters, this could be hard.

The other bug that I have noticed in my program is if the user adds a '\' at the end of the directory field. This one is simple and should be easily fixed for my 1.0 build.

Lastly I'm planning on creating some error reporting so that if/when things do go wrong there will be some feedback for the user.

More soon,

Thursday, April 3, 2008

Scratch that

Well totally ignore my last blog post. Most of it was psuedo code/theory and when it came to coding it just didn't work. Here is the problem, my first goal was integrate Mkaply's CCK extension into my program. Since CCK outputs an .xpi I figured I could write a static Wix script that would simply copy those files over and I'd be done. Problem is, like most extensions, CCK is dynamic which means that files change based on the installation. Sometimes a file will be there and sometimes it won't, for me to write a static script on this is impossible.

I've taken the same idea from my last post and changed it a bit. After several hours of work on a function I think I'm close to my goal. I've created a function in my program that recursively iterates through a folder and builds a Wix script dynamically. While I have the program creating the script properly, I have yet to test this. However if this does work it means that I can point this function at a directory and it will create a piece of Wix script for me dynamically based on that folder's content.

So far the code seems to work, I'll be testing more today.