IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Dreamshield Discussion :

tout sur le plugin


Sujet :

Dreamshield

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Points : 44
    Points
    44
    Par défaut tout sur le plugin
    Bonjour Smyley

    Désolé de te prendre de ton temps si précieux , mais je tente de faire un plugin sur la base de l'exemple donné pour personnaliser le skin mais hélas je ne sais pas ou trouvé les .dll suivants pour que VB accepte les références en imports donc :

    Imports DreamShield.Deployment.Wizards
    Imports DreamShield.Deployment.Wizards.Workflow
    Imports DreamShield.Deployment.Helpers
    Imports DreamShield.Windows.Themes.Gui
    Imports DreamShield.Deployment.Driver.Native

    Si tu pouvais soit me donner un lien pour les télécharger ou bien me dire ou se trouve les .dll dans le répertoire de ton programme cela me permettrait peut être d'avancer.

    Par ailleurs, ma logique de partir de l'exemple skin est elle bonne, car ce n'est pas forcement le but premier du plugin.

    D'avance merci Smyley

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Rajoute les dlls suivantes, présentes dans le dossier d'installation de DreamShield (au même endroit que dside.exe et tout) :

    DreamShield.Deployment.dll
    DreamShield.Windows.Themes.dll

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Merci Smyley

    En effet l'ajout de ces références m'ont permis de lever les erreurs d'imports

    Sinon maintenant je voudrai avoir accès à une variable de type string ou boolean personnalisée afin d'y mettre une valeur et que l'installateur derriere puisse l'exploiter et agir en fonction de la valeur de cette variable :

    - comment fait on dans DreamShield pour déclarer une variable de type string ou boolean ou integer ?

    - comment déclarer cette variable dans le plugin en VB.NET (genre public variableds as string) pour que je puisse y affecter une valeur et que l'installateur derrière en récupére la valeur ?

    Encore merci Smyley de ton aide si précieuse

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Il y a un Dictionary<string,object> de niveau global pour chaque package qui peut contenir n'importe quoi, et donc être accédé par n'importe quel plugin du package.

    C'est LePackage.InstanceVariables["maVariable"] = "quelque chose";

    (où LePackage est soit par une variable Package directement dans ton plugin, soit via une variable Engine.Package).

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Merci Smyley pour cette prompte réponse

    Mais hélas je n'y comprends pas grand chose c'est ou dans le projet DreamShield le dictionnary de variables pour chaque package ou package global ?

    Quel import dois je faire pour accèder aux variables globales ou d'un package ?

    j'en suis là : (et en rouge ca passe pas)
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Imports System
    Imports DreamShield.Extentions
    Imports DreamShield.Deployment.Installers.DreamPlugins
    Imports System.IO
    Imports System.Xml
    Imports DreamShield.Deployment.Wizards
    Imports DreamShield.Deployment.Wizards.Workflow
    Imports DreamShield.Deployment.Helpers
    Imports DreamShield.Windows.Themes.Gui
    Imports DreamShield.Deployment.Driver.Native
     
    Namespace MilesCustomPage
        <Extention(BaseDreamPluginContainer.DreamPluginExtentionGuid, "{77B51474-B088-4d40-ACD3-9B2F6450C466}")> _
        Public Class MyPlugin
            Inherits MilesRoot
            ' MilesRoot : classe qui permet de connecter les plugins Miles à l'installation 
            Protected Overloads Overrides Sub OnServerInitialized()
     
                ' Ici, il faudra rajouter les différents plugins que l'on veut connecter à DreamShield 
     
                MyBase.OnServerInitialized()
            End Sub
            Public Overridable Sub RegisterCustomPage()
                ' création de la page personnalisée 
     
                Dim customPage As New usercontrol1() '-----------------
                Dim plugin As New CustomPagePlugin(Server, WizardPagesID.InstallationModePage, False, "", customPage)
                ' Il est possible de définir quelles actions seront possibles à partir de la page personnalisée, ie.
                ' * Précédent - Suivant - Annuler. Ici, on désactive la possibilité d'annuler sur cette page.
                ' * les propriétés et méthodes de plugin offrent tout un panel de personnalisations et d'évènements 
                ' * accessibles pour une page de l'assistant 
     
                plugin.CanCancel = False
                ' définition du plugin, ainsi il sera accessible via la page personnalisée 
     
                customPage.PagePlugin = plugin
                ' enregistrement du plugin 
     
                Server.RegisterPlugin(customPage.PagePlugin)
            End Sub
        End Class
    End Namespace

  6. #6
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Server.Engine.Package.InstanceVariables

    ps. avec cette méthode les variables ne survivent pas d'une exécution à l'autre du setup. Il y a d'autre moyens pour le faire. Tu en as besoin ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    Merci Smyley

    Mais je le trouve ou ce

    Server.Engine.Package.InstanceVariables

    faut il un dll particulier à ajouter au référence du projet VB ou un imports ?

    et dis moi quel chemin pour mettre les variables dans le projet DreamShield s'il te plait car là je suis un peu perdu (tu l'auras remarqué je pense )

    le fait d'avoir mis en page mon dernier post on ne voit plus que usercontrol1 est un type inconnu par VB.net.

    A te lire et encore merci

  8. #8
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Mais, mais, mais ...

    Si tu utilises Miles tu te sert de ça :
    http://dreamshield.developpez.com/do...p?n=Main.Miles

    Et donc il te faut aussi rajouter les dlls de Miles.

    Et le Server en question c'est le même que pour Server.RegisterPlugin(customPage.PagePlugin)

    Et le UserControl1 c'est ton contrôle utilisateur, que tu crées en rajoutant un nouveau contrôle utilisateur à ton projet VS ...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 56
    Points : 44
    Points
    44
    Par défaut
    je m'exprime mal je pense

    Je suis parti du skin windows dont tu as fourni la source dans ton application, hors tout cela est en C# (ou est ce foutu dièse, enfin je le trouve) et je tente de le traduire en VB.NET puisque pour moi le C a une syntaxe qui restera pour moi un mystère.

    Donc mon but premier est de pouvoir lancer un plugin qui va modifier les variables globales (une ce serait déjà bien) afin que l'installation s'adapte à son environnement.

    Donc le plugin va chercher des éléments qu'il passera en parametre d'installation du package.

    Je ne cherche pas à discuter avec l'utilisateur juste à rechercher des éléments de son installation OS, CPU etc et renvoyer les informations via des variables globales du package et en fonction des valeurs des variables j'installe ce module ou un autre mais il faut pour cela que tout ce petit monde se parle, j'espère que je suis un peu plus clair car sinon

    Donc pour faire cela ai je besoin du zip Miles que tu m'indiques puisque il semble qu'il ai été developpé pour faire des skins personnalisés et moi c'est pas du tout ce que je souhaite faire pour l'instant, c'était juste une source de départ et je cherche à l'adapter à mes besoins.

    donc quelles references et quels imports dois je ajouter à un projet en VB.NET pour juste parler aux variables globales du projet ou d'un package et ou puis je définir les variables dans le projet DreamShield qu'elles soient globales ou d'un package ?

  10. #10
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Tu m'as perdu

    Alors si j'ai bien compris cette fois ci :

    On ne fait pas de skin avec Miles, pas encore du moins, mais ce n'était pas prévu à la base. Ce qu'on fait avec miles c'est les pages personnalisées ou d'autres actions relatives au déroulement d'une installation. J'avais répondu un peut avec précipitation avant ...

    Donc, en repartant du skin Windows Skin qui dispose donc des sources.
    Tu as normalement un fichier SkinLoader qui contient la logique de chargement du skin. Dans la classe SkinLoaderServer, tu as le constructeur qui accepte un paramètre engine. Les variables de l'installation peuvent être atteintes à partir de là :
    engine.Package.InstanceVariables

    Vu que tu as aussi accès a engine.Package donc, tu peut modifier les paramètres que tu veux sur l'installation. Pas besoin de Miles pour le skin.

    Ceci dit, tu peux combiner plusieurs plugins si tu veux découper ton projet, ie. une plugin pour le skin et un autre pour la logique (et celui ci avec Miles) car InstanceVariables sera le même objet pour les deux.

    C'est mieux ?

Discussions similaires

  1. div et innerHTML : tout sur une ligne?
    Par LineLe dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/04/2005, 11h15
  2. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  3. [Plugin] Information générale sur le plugin.xml
    Par relivio dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 16/04/2004, 13h31
  4. Tout sur CORBA
    Par Community Management dans le forum CORBA
    Réponses: 0
    Dernier message: 11/10/2002, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo