none
Comment faire pour modifier le fichier web.config dans un projet Web Setup avec Custom Action RRS feed

  • Discussion générale

  • Le projet  Web  Setup  offre un avantage sur la copie des fichiers sur le serveur. Avec le projet Web Setup, l'installateur gère automatiquement le problème avec l'inscription et la configuration. Cependant, parfois, on veut savoir comment configurer une application ASP.NET Web, tels que la version d'ASP.NET ou la modification de web.config.

    La réponse est l'action de Custom Action dans Web Setup qui fournit l'utilitaire pour configurer une application ASP.NET Web, tels que la version d'ASP.NET, modification de web.config lors de l'installation de l'application ASP.NET avec le programme d'installation sur le serveur.

     

    Cette FAQ montre comment utiliser Custom Action pour modifier la section appSettings du web.config lors de l'installation sur le serveur :

     

    ·          Créer une Application Web ASP.NET

    1. Démarrez Visual Studio 2008 et créez une application ASP.NET Web à l'aide de File-> New-> Project-> sélectionnez ASP.NET Web Application dans les types de projet Visual c#-> OK. Dans ce cas, on le nomme WebApplicationDemo.

     

    2. Ajoutez la section appSettings suivante au fichier web.config. C'est pour l'enregistrement des données introduites par le client lors de l'installation de l'application ASP.NET avec le programme d'installation sur le serveur :

    <appSettings>
           <add key="UserData" value="The Value"/>
    </appSettings>

     

    3.  Ajoutez ce code dans l’evenement PageLoad du fichier Default.aspx.cs :

               

    // Obtenir le web.config de l’application courante
          Configuration config = WebConfigurationManager.OpenWebConfiguration("~/");
          AppSettingsSection setting = config.AppSettings;
          // récupérer la valeur de la section AppSettings avec la clé "UserData"
          string strResult = setting.Settings["UserData"].Value;
    Response.Write("AppSettings Section with the value of key \"UserData\" is " + strResult);

     

     

    ·          Creer le projet Web Setup

     

    1.   Clic droit dans Solution Window et selectez Add->New Project->Select Web Setup Project->OK. Dans ce cas, le nom du projet sera WebSetupDemo

    2.   Click droit sur WebSetupDemo dans Solution Window et selectez Add->Project Output->selectez WebApplicationDemo ->selectez Primary Output et Content Files -> OK

     

     

    ·          Creer la librairie de classes Custom Action

     

    1.   Clic droit sur la solution dans Solution Window et selectez Add->New Project->Class Library ->OK. Le nom de ce projet sera CustomActionDemo

    2.   Supprimez la classe par defaut Class1.cs. Clic droit sur CustomActionDemo dans Soluion Window et selectez Add->New Item->selectez la class Installer->OK. On le nomme CustomActionDemo

    3.   Ajoutez ce code a CustomACtionDemo.Designer.cs

     

           

     /// <summary>
        /// Override bass install class's Install method
        /// </summary>
        /// <param name="stateSaver"></param>
        public override void Install(System.Collections.IDictionary stateSaver)
        {
          base.Install(stateSaver);
     
          // recuperer le repertoire virtuel de l'application web sur le serveur
          string targetVDir = Context.Parameters["targetvdir"];
          // recuperer la valeur que le client introduit dans l'assistant pendant l'installation
          string strNewValue = Context.Parameters["strnewvalue"];
     
          // recuperer web.config 
          Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/" + targetVDir);
          // recuperer la section AppSettings 
          AppSettingsSection setting = config.AppSettings;
          // definir Settings avec la cle "UserData"
        setting.Settings["UserData"].Value = strNewValue;
          // enregistrer web.config 
          config.Save();
                }

     

     

     

     

     

    ·          Configurer Web Setup avec Custom Action

    1. Clic droit sur WebSetupDemo à partir de Solution Window, puis sélectionnez Ajouter-> Project Output-> sélectionnez CustomActionDemo -> Sélectionnez Primary Output-> OK.

     

    2. Clic droit sur WebSetupDemo dans Solution Window et puis sélectionnez View-> Custom Actions ;  cliquez droit sur le dossier Install-> sélectionnez Add Custom Action-> sélectionnez Primary Output de CustomActionDemo dans Web Application Folder-> OK.

     

    3. Cliquez droit sur Primary Output de CustomActionDemo et sélectionnez Properties Window ; puis écrivez le contenu suivant dans l'attribut CustomActionData :

    /targetvdir = /strnewvalue "[TARGETVDIR]" = "[STRNEWVALUE]"

     

    4. Cliquez droit sur WebSetupDemo dans Solution Window, puis sélectionnez View-> User Interface, clic droit sur Start dans Install-> sélectionnez Add Dialog-> Sélectionnez Textboxs (A)-> OK. Cliquez droit Textboxs (A)-> cliquez sur Move Up vers le haut de la liste avant l’interface Confirm Installation

     

    5. Clic droit sur Textboxs (A) pour ouvrir Properties Window et modifiea BannerText à "Modifier la section AppSetting", BodyText à "Introduisez la valeur pour la section AppSetting", Edit1Label à "Valeur:" et tapez STRNEWVALUE dans l'attribut Edit1Property. Après cela, définissez Edit2Visible, Edit2Visible, Edit2Visible sur false.

     

    Maintenant, cliquez avec le bouton droit sur WebSetupDemo de la solution et sélectionnez Générer. Après avoir généré le projet, cliquez avec le bouton droit sur WebSetupDemo et sélectionnez Install. Dans la troisième zone de l’assistant d'installation, il y a une zone de texte de saisie. Lorsque l'installation est terminée, recherchez le fichier Default.aspx de l’application web installée sur IIS et vous verrez la valeur que vous avez introduite dans l'Assistant à la page default.aspx. 

     

    Pour plus d'informations sur l'utilisation d'une action personnalisée, veuillez visiter le site Web suivant :

    http://weblogs.asp.net/scottgu/archive/2007/06/15/tip-trick-creating-packaged-asp-net-setup-programs-with-vs-2005.aspx

     

     

     

    Pour plusieurs informations, visitez la page Foire aux Questions – ASP.NET

     

     

     


    Appel à contribution ! http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/bd974e0e-5519-4122-b8fc-3b998207c34f
    jeudi 29 avril 2010 11:53
    Modérateur