Extension Installer V2

Discussion in 'Skins and Plugins Installer (MPEI)' started by dukus, October 5, 2009.

  1. dukus

    dukus Portal Pro

    Joined:
    January 20, 2006
    Messages:
    783
    Likes Received:
    370
    Ratings:
    +371 / 0
    Home Country:
    Romania Romania
    How i see the current extension installer not really used. The some of problems with it, this interface not really help the devs, no possibility customize the setup, depend on a online repository which not exist, impossible to use with MP2 and many more.. So i decide to rewrite from zero.

    The base functionality of a installer is to copy a file to a specified location on user system. The new installer based on "providers", (maybe not the right name), with this providers it is easy to extend the system.

    • InstallerType - This provide how the installer handle the files. Like "CopyFile" copy the included file to the specified location or "RegisterFont" register the included font in system.
    • PathProvider - This provider transform path templates in real path in user system.
    • SectionPanel - This are forms included in install wizard, like "Welcome Screen" or "Component Selector"
    • ActionType - This are actions attached to the panels like ("Install files", "Kill process")

    For updates the extension dev should provide a url were is a version descriptor xml file. This file may be hosted in google code, or in Mediaportal server. The available extensions will be browsed on mediaportal site. The installer manage (UnInstall, Update) only the installed extension. Every extension have a unique GUID so can be identified after name change too.

    The installer use groups to made install option. If a group is checked the all files belong to this group will be installed.
    The install wizard have sections, every section visibility may depend on a group check.
    Try to make the installer with same functionality like a NSIS or a MSI installer, but with a dev friendly user interface to make this install package.

    The installer have 3 parts :
    MpeMaker - utility to create extension packages (this should used by the devs) and
    MpeInstaller - utility to manage the extensions (Install, UnInstall)
    MPEIPlugin - window plugin to manage extensions

    A small To-Do list :
    • Installer type
      • Font installer - done
      • Generic Skin installer - done
    • Actions
      • Shortcut creation on a specified location done
      • Included package installer done
      • Register DirectShow filter
      • Add registry key to windows registry
      • Lunch separated application - done
      • Add settings to MP
      • Create folder - done
      • Kill running task - done
      • Clear skin cache - done
      • Show message box - done
    • Wizard sections
      • Wizard section with radio buttons
      • Wizard section with check boxes - done
      • More customizable Wizard sections (Title, log, etc) - done
      • Script capabilities CSScriptLibrary - done
    • Misc
      • Version checking - done
      • Compatibility with Vista and W7 - done
      • Support for tv server plugins - done
      • Uninstall - done
      • Update checking - done
      • Plugin for The Installer
      • List for installed extensions done


    Links to older discussion :

    This installer file format isn't compatible with older mpi format
    For testing use latest SVN. To make a extension Use MPEMaker.exe and for install it use MPEInstaller.exe



    So i need feedback especially from plugin devs and from skinners.
     

    Attached Files:

    • Installer1.png
      Installer1.png
      File size:
      24.9 KB
      Uploaded:
      November 29, 2009
      Views:
      1,979
    • Installer2.png
      Installer2.png
      File size:
      17.1 KB
      Uploaded:
      November 29, 2009
      Views:
      1,581
    • maker1.png
      maker1.png
      File size:
      29.5 KB
      Uploaded:
      November 29, 2009
      Views:
      1,695
    • maker2.png
      maker2.png
      File size:
      28.7 KB
      Uploaded:
      November 29, 2009
      Views:
      1,461
    • maker3.png
      maker3.png
      File size:
      22.1 KB
      Uploaded:
      November 29, 2009
      Views:
      1,369
    • plugin.png
      plugin.png
      File size:
      313.6 KB
      Uploaded:
      November 29, 2009
      Views:
      1,751
    • mpeInstaller.zip
      File size:
      30.6 KB
      Uploaded:
      March 24, 2010
      Views:
      2,264
    • Like Like x 19
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Harley
    • Premium Supporter

    Harley Retired Team Member

    Joined:
    May 7, 2004
    Messages:
    2,053
    Likes Received:
    996
    Location:
    Germany
    Ratings:
    +999 / 0
    Home Country:
    Germany Germany
    Hi dukus,

    can you please give us a instruction manual, how we should use the mpi maker.

    I have do some test´s with it, but i absolute not know how i should use it.

    Would be good if you can make a instruktion manual, what shows all steps what is needed todo a skin.mpi with it.
    - How can i load my skin inside
    - how can i set customscreens like different epg´s or else with preview pictures
    - how can i set loading of fonts
    and so on and so on.

    A step by step instruction would be a helpfull thing, perhaps with some screenshots.

    Greetings Harley :)
     
  4. dukus

    dukus Portal Pro

    Joined:
    January 20, 2006
    Messages:
    783
    Likes Received:
    370
    Ratings:
    +371 / 0
    Home Country:
    Romania Romania
    Yes Harley you are right, without manual (or a small tutorial) this is useless...., but i'm a very beginning of this project , so may the interface will be have major changes.
    In a first post i try to make a todo list ...
     
    • Like Like x 1
  5. Harley
    • Premium Supporter

    Harley Retired Team Member

    Joined:
    May 7, 2004
    Messages:
    2,053
    Likes Received:
    996
    Location:
    Germany
    Ratings:
    +999 / 0
    Home Country:
    Germany Germany
    Ah, ok many thanks :)

    ..the todo list sounds great ! :)

    Harley
     
  6. framug

    framug Portal Pro

    Joined:
    January 31, 2005
    Messages:
    4,179
    Likes Received:
    201
    Occupation:
    software engineer
    Location:
    South of France
    Ratings:
    +241 / 2
    Home Country:
    France France
    Deleted because tested with an older version.
    Sorry for that.
     
  7. dukus

    dukus Portal Pro

    Joined:
    January 20, 2006
    Messages:
    783
    Likes Received:
    370
    Ratings:
    +371 / 0
    Home Country:
    Romania Romania
    I try to make a first tutorial, for creating skin installer, for testing reason and to know if i'm in the right way (maybe some operation are to complicated it is let me know to find a simple way for it)

    For this tutorial use a real example the XFace skin, you can get the skin files from svn https://mediaportal.svn.sourceforge.net/svnroot/mediaportal/trunk/MediaPortal Skins/Xface and all files are located in "XFACE_SVN" folder.

    1. Execute MpeMaker.exe
    2. In "Extension information" section define some information like name, version, etc
    3. In "Group&Files" section are defined the skin files, grouped in more Groups :
    First group named "Default", in this group are all generic skin files, to add files: Select the group then click "Add folder", in folder select : "XFACE_SVN\xface", and in template : "%Skin%\Xface", and check the recurse subdirectories, "Add"
    Second group add "Epg 11 row", the "add files" from "XFACE_SVN\Customize\EPG\11rows" and the in right part set the install location "%Skin%\Xface" and hit "Set"
    Same operation for "Epg 9 row"
    4. In "Install section" define the install wizard screens:
    Add a "Welcome" , "ImageRadioSelector" , "InstallSection" , and a another "Welcome", Select the "ImageRadioSelector" and in "Included file group" check the "Epg 11 row" and "Epg 9 row", with "Edit params " , define the used pictures for radio selections .
    5. Build the project.

    I try to extend this small tutorial wit progress....

    If i miss something and not working the tutorial, i attach the project file in zip extract in XFACE_SVN to use it .. And don't forget to download from the first post the new exe's
     

    Attached Files:

    • Like Like x 1
  8. 1stdead

    1stdead Portal Pro

    Joined:
    February 1, 2008
    Messages:
    1,089
    Likes Received:
    139
    Location:
    Copenhagen
    Ratings:
    +139 / 0
    Home Country:
    Denmark Denmark
    Hi.

    Bugs:
    1) Each time you delete a file the group collapses.
    2) Cannot folder etc a skin folder Blue3/Media with underlying files.
     
  9. dukus

    dukus Portal Pro

    Joined:
    January 20, 2006
    Messages:
    783
    Likes Received:
    370
    Ratings:
    +371 / 0
    Home Country:
    Romania Romania
    Can you explain ?
    And thx for testing !
     
  10. 1stdead

    1stdead Portal Pro

    Joined:
    February 1, 2008
    Messages:
    1,089
    Likes Received:
    139
    Location:
    Copenhagen
    Ratings:
    +139 / 0
    Home Country:
    Denmark Denmark
    Step 3. I having difficulties with adding a folder to a group.

    Bugs:
    1) In setup>install selections> add install selection > mark install selection and "just" press edit params. Throws an exception

    Additional:
    Show Spoiler

    Se slutningen af denne meddelelse, hvis du vil have detaljer om,
    hvordan du starter JIT-fejlfinding i stedet for denne dialogboks.

    ************** Undtagelsestekst **************
    System.ArgumentOutOfRangeException: InvalidArgument=Værdi '0' er ugyldig for 'SelectedIndex'.
    Parameternavn: SelectedIndex
    ved System.Windows.Forms.ComboBox.set_SelectedIndex(Int32 value)
    ved MpeMaker.Dialogs.ParamEdit.Set(SectionParamCollection paramCollection) i F:\devel\vs2005\mp\mediaportal\MPE\MpeMaker\Dialogs\ParamEdit.cs:linje 34
    ved MpeMaker.Sections.InstallSections.btn_params_Click(Object sender, EventArgs e) i F:\devel\vs2005\mp\mediaportal\MPE\MpeMaker\Sections\InstallSections.cs:linje 154
    ved System.Windows.Forms.Control.OnClick(EventArgs e)
    ved System.Windows.Forms.Button.OnClick(EventArgs e)
    ved System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    ved System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    ved System.Windows.Forms.Control.WndProc(Message& m)
    ved System.Windows.Forms.ButtonBase.WndProc(Message& m)
    ved System.Windows.Forms.Button.WndProc(Message& m)
    ved System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    ved System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    ved System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Indlæste assemblies **************
    mscorlib
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    MpeMaker
    Assemblyversion: 1.0.0.0
    Win32-version: 1.0.0.0
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/MpeMaker.exe
    ----------------------------------------
    System.Windows.Forms
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    MpeCore
    Assemblyversion: 1.0.0.0
    Win32-version: 1.0.0.0
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/MpeCore.DLL
    ----------------------------------------
    System.Configuration
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    Utils
    Assemblyversion: 2.2.7.33102
    Win32-version: 2.2.7.23831
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/Utils.DLL
    ----------------------------------------
    Ionic.Zip
    Assemblyversion: 1.7.2.18
    Win32-version: 1.7.2.18
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/Ionic.Zip.DLL
    ----------------------------------------
    mscorlib.resources
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    System.Windows.Forms.resources
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_da_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    hdbi4x4y
    Assemblyversion: 1.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------

    ************** JIT-fejlfinding **************
    Hvis du vil aktivere JIT-fejlfinding, skal værdien jitDebugging indstilles
    i afsnittet system.windows.forms i konfigurationsfilen
    for programmet eller computeren.
    Programmet skal desuden kompileres med fejlfinding
    aktiveret.

    Eksempel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Når JIT-fejlfinding er aktiveret, bliver alle ikke-afviklede
    undtagelser sendt til den JIT-fejlfindingsfunktion, der er registreret på computeren, i stedet for
    at blive afviklet af denne dialogboks.



    2) same as above but just press "preview".
    3) Change display name in setup>groups and files. Doesn't change name in list.
    4) Likewise as 3 install loction doesn't update.
    5) Append file extension automatically.
    6) Trying to install, fails while copying files:
    Show Spoiler
    Se slutningen af denne meddelelse, hvis du vil have detaljer om,
    hvordan du starter JIT-fejlfinding i stedet for denne dialogboks.

    ************** Undtagelsestekst **************
    System.IO.DirectoryNotFoundException: En del af stien 'C:\Documents and Settings\All Users\Application Data\Team MediaPortal\MediaPortal\Installer\V2\7ddae5e4-c755-4fca-a110-c392bed0b22d\0.0.7.0\UninstallInfo.xml' blev ikke fundet.
    ved System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
    ved System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
    ved System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
    ved System.IO.StreamWriter.CreateFile(String path, Boolean append)
    ved System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
    ved System.IO.StreamWriter..ctor(String path)
    ved MpeCore.Classes.UnInstallInfoCollection.Save(String fileName) i F:\devel\vs2005\mp\mediaportal\MPE\MpeCore\Classes\UnInstallInfoCollection.cs:linje 86
    ved MpeCore.Classes.UnInstallInfoCollection.Save() i F:\devel\vs2005\mp\mediaportal\MPE\MpeCore\Classes\UnInstallInfoCollection.cs:linje 80
    ved MpeCore.PackageClass.Install() i F:\devel\vs2005\mp\mediaportal\MPE\MpeCore\PackageClass.cs:linje 60
    ved MpeCore.Classes.SectionPanel.InstallSection.InstallSection_Shown(Object sender, EventArgs e) i F:\devel\vs2005\mp\mediaportal\MPE\MpeCore\Classes\SectionPanel\InstallSection.cs:linje 124
    ved System.Windows.Forms.Form.OnShown(EventArgs e)
    ved System.Windows.Forms.Form.CallShownEvent()
    ved System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry tme)
    ved System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
    ved System.Threading.ExecutionContext.runTryCode(Object userData)
    ved System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
    ved System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
    ved System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    ved System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
    ved System.Windows.Forms.Control.InvokeMarshaledCallbacks()


    ************** Indlæste assemblies **************
    mscorlib
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    MpeInstaller
    Assemblyversion: 1.0.0.0
    Win32-version: 1.0.0.0
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/MpeInstaller.exe
    ----------------------------------------
    System.Windows.Forms
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    MpeCore
    Assemblyversion: 1.0.0.0
    Win32-version: 1.0.0.0
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/MpeCore.DLL
    ----------------------------------------
    System.Configuration
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    Utils
    Assemblyversion: 2.2.7.33102
    Win32-version: 2.2.7.23831
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/Utils.DLL
    ----------------------------------------
    Ionic.Zip
    Assemblyversion: 1.7.2.18
    Win32-version: 1.7.2.18
    CodeBase: file:///C:/Programmer/Team%20MediaPortal/MediaPortal/Ionic.Zip.DLL
    ----------------------------------------
    mscorlib.resources
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3082 (QFE.050727-3000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    araa7ump
    Assemblyversion: 1.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    mc8qzxsp
    Assemblyversion: 1.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Windows.Forms.resources
    Assemblyversion: 2.0.0.0
    Win32-version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_da_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** JIT-fejlfinding **************
    Hvis du vil aktivere JIT-fejlfinding, skal værdien jitDebugging indstilles
    i afsnittet system.windows.forms i konfigurationsfilen
    for programmet eller computeren.
    Programmet skal desuden kompileres med fejlfinding
    aktiveret.

    Eksempel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Når JIT-fejlfinding er aktiveret, bliver alle ikke-afviklede
    undtagelser sendt til den JIT-fejlfindingsfunktion, der er registreret på computeren, i stedet for
    at blive afviklet af denne dialogboks.





    Improvement suggestions:
    1) I'm missing something like: %Plugins\Windows (and the other ones) in install location.
    2) Some sort of logo like in the old MPi maker(dunno if you plan to make this online or not)
    3)
     
  11. dukus

    dukus Portal Pro

    Joined:
    January 20, 2006
    Messages:
    783
    Likes Received:
    370
    Ratings:
    +371 / 0
    Home Country:
    Romania Romania
    I made some progress with editor, hope i fixed the most of listed errors.
     
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!