Wednesday, December 5, 2007

Welcome.♦

My first post will be about a little program I'm going to create.
The purpose of this program is to make a very extensible setup program.
Recently i finished a project where a SharePoint website was delivered to a customer. The installation procedure was already greatly simplified by my colleague's and the only thing the customer would have to do is simply adjust a little batchfile and a xml file and run the batch file.
The problem with this sort of deployment of an application is that it's mainly functional and has a lack of GUI.
So after a little brainstorming the idea was born to create an flexible/extensible installer method which can be used for new projects.
The problem with MSI is that is rather complicated to build (if you don't know what you’re doing)
So without any further ado i present to you the concept of the idea:

First of all is that the whole setup package will consist of only 2 files.

  • Setup.exe
  • Deploy.cab
The setup.exe will automatically decompress the 2nd file and in there it will find an xml file called "Deploy.xml"
This "Deploy.xml" will hold all the necessary actions setup.exe will perform and will look something like:

    1 <?xml version="1.0" encoding="utf-8" ?>

    2 <Deploy>

    3     <LogoImage>.\Logo.bmp</LogoImage>

    4     <ShowOutputWindow>True</ShowOutputWindow>

    5     <GenerateLogFile>True</GenerateLogFile>

    6     <LogFileName>Result.log</LogFileName>

    7     <Program id="1">

    8         <Title>Ping localhost...</Title>

    9         <Command>ping</Command>

   10         <Parameters>

   11             <Parameter>localhost</Parameter>

   12         </Parameters>

   13         <IsConsoleApp>True</IsConsoleApp>

   14         <ShowOutputInWindow>False</ShowOutputInWindow>

   15         <GeneratesOutputErrorCode>True</GeneratesOutputErrorCode>

   16         <IsShowStopper>True</IsShowStopper>

   17     </Program>

   18     <Program id="2">

   19         <Title>Copy *.log</Title>

   20         <Command>XCopy</Command>

   21         <Parameters>

   22             <Parameter>*.*</Parameter>

   23             <Parameter>d:\</Parameter>

   24         </Parameters>

   25         <IsConsoleApp>True</IsConsoleApp>

   26         <ShowOutputInWindow>True</ShowOutputInWindow>

   27         <GeneratesOutputErrorCode>True</GeneratesOutputErrorCode>

   28         <IsShowStopper>True</IsShowStopper>

   29     </Program>

   30 </Deploy>


No comments: