Comment : publier un projet qui a des paramètres régionaux spécifiqueHow to: Publish a project that has a specific locale

Une application peut contenir des composants ayant des paramètres régionaux différents.It is not uncommon for an application to contain components that have different locales. Dans ce scénario, vous devez créer une solution avec plusieurs projets, puis publier des projets distincts pour chacun des paramètres régionaux.In this scenario, you would create a solution that has several projects, and then publish separate projects for each locale. Cette procédure montre comment utiliser une macro pour publier le premier projet dans une solution avec les paramètres régionaux « en ».This procedure shows how to use a macro to publish the first project in a solution by using the 'en' locale. Si vous souhaitez essayer cette procédure avec d'autres paramètres régionaux, veillez à définir localeString dans la macro pour que sa valeur corresponde aux paramètres régionaux que vous utilisez (par exemple, « fr » ou « fr-FR »).If you want to try this procedure with a locale other than 'en', make sure to set localeString in the macro to match the locale that you are using (for example, 'de' or 'de-DE').

Note

Quand vous utilisez cette macro, l'emplacement de publication doit être une URL ou un partage UNC (Universal Naming Convention) valide.When you use this macro, the Publish Location should be a valid URL or Universal Naming Convention (UNC) share. De plus, les services IIS (Internet Information Services) doivent être installés sur votre ordinateur.Also, Internet Information Services (IIS) has to be installed on your computer. Pour installer IIS, sur le Démarrer menu, cliquez sur le panneau de configuration.To install IIS, on the Start menu, click Control Panel. Double-cliquez sur ajouter ou supprimer des programmes.Double-click Add or Remove Programs. Dans Ajout / Suppression de programmes, cliquez sur ajouter/supprimer des composants Windows.In Add or Remove Programs, click Add/Remove Windows Components. Dans le Assistant Composants de Windows, sélectionnez le Internet Information Services (IIS) case à cocher dans la composants liste.In the Windows Components Wizard, select the Internet Information Services (IIS) check box in the Components list. Puis cliquez sur Terminer pour fermer l’Assistant.Then click Finish to close the wizard.

Pour créer la macro de publicationTo create the publishing macro

  1. Pour ouvrir l’Explorateur de macros, sur le outils menu, pointez sur Macros, puis cliquez sur Explorateur de macros.To open the Macro Explorer, on the Tools menu, point to Macros, and then click Macro Explorer.

  2. Créez un module de macro.Create a new macro module. Dans l’Explorateur de macros, sélectionnez MyMacros.In the Macro Explorer, select MyMacros. Sur le outils menu, pointez sur Macros, puis cliquez sur nouveau Module de Macro.On the Tools menu, point to Macros, and then click New Macro Module. Nommez le module PublishSpecificCulture.Name the module PublishSpecificCulture.

  3. Dans l’Explorateur de macros, développez le MyMacros nœud, puis ouvrez le PublishAllProjects module en double-cliquant dessus (ou, à partir de la outils menu, pointez sur Macros, puis cliquez sur de macros).In the Macro Explorer, expand the MyMacros node, and then open the PublishAllProjects module by double-clicking it (or, from the Tools menu, point to Macros, and then click Macros IDE).

  4. Dans l'Éditeur de macros, ajoutez le code suivant au module, après les instructions Import :In the Macros IDE, add the following code to the module, after the Import statements:

    Module PublishSpecificCulture  
        Sub PublishProjectFirstProjectWithEnLocale()  
            ' Note: You should publish projects by using the IDE at least once  
            ' before you use this macro. Items such as the certficate and the   
            ' security zone must be set.  
            Dim localeString As String = "en"  
    
            ' Get first project.  
            Dim proj As Project = DTE.Solution.Projects.Item(1)  
            Dim publishProperties As Object = proj.Properties.Item("Publish").Value  
    
            ' GenerateManifests and SignManifests must always be set to  
            ' True for publishing to work.   
            proj.Properties.Item("GenerateManifests").Value = True  
            proj.Properties.Item("SignManifests").Value = True  
    
            'Set the publish language.  
            'This will set the deployment language and pick up all   
            ' en resource dlls:  
            Dim originalTargetCulture As String = _  
                publishProperties.Item("TargetCulture").Value  
            publishProperties.Item("TargetCulture").Value = localeString  
    
            'Append 'en' to end of publish, install, and update URLs if needed:  
            Dim originalPublishUrl As String = _  
                publishProperties.Item("PublishUrl").Value  
            Dim originalInstallUrl As String = _  
                publishProperties.Item("InstallUrl").Value  
            Dim originalUpdateUrl As String = _  
                publishProperties.Item("UpdateUrl").Value  
            publishProperties.Item("PublishUrl").Value = _  
                AppendStringToUrl(localeString, New Uri(originalPublishUrl))  
            If originalInstallUrl <> String.Empty Then  
                publishProperties.Item("InstallUrl").Value = _  
                    AppendStringToUrl(localeString, New Uri(originalInstallUrl))  
            End If  
            If originalUpdateUrl <> String.Empty Then  
                publishProperties.Item("UpdateUrl").Value = _  
                    AppendStringToUrl(localeString, New Uri(originalUpdateUrl))  
            End If  
            proj.Save()  
    
            Dim slnbld2 As SolutionBuild2 = _  
                CType(DTE.Solution.SolutionBuild, SolutionBuild2)  
            slnbld2.Clean(True)  
    
            slnbld2.BuildProject( _  
            proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, _  
            proj.UniqueName, True)  
    
            ' Only publish if build is successful.  
            If slnbld2.LastBuildInfo <> 0 Then  
                MsgBox("Build failed for " & proj.UniqueName)  
            Else  
                slnbld2.PublishProject( _  
                proj.ConfigurationManager.ActiveConfiguration.ConfigurationName, _  
                proj.UniqueName, True)  
                If slnbld2.LastPublishInfo = 0 Then  
                    MsgBox("Publish succeeded for " & proj.UniqueName _  
                    & vbCrLf & "." _  
                    & " Publish Language was '" & localeString & "'.")  
                Else  
                    MsgBox("Publish failed for " & proj.UniqueName)  
                End If  
            End If  
    
            ' Return URLs and target culture to their previous state.  
            publishProperties.Item("PublishUrl").Value = originalPublishUrl  
            publishProperties.Item("InstallUrl").Value = originalInstallUrl  
            publishProperties.Item("UpdateUrl").Value = originalUpdateUrl  
            publishProperties.Item("TargetCulture").Value = originalTargetCulture  
            proj.Save()  
        End Sub  
    
        Private Function AppendStringToUrl(ByVal str As String, _  
        ByVal baseUri As Uri) As String  
            Dim returnValue As String = baseUri.OriginalString  
            If baseUri.IsFile OrElse baseUri.IsUnc Then  
                returnValue = IO.Path.Combine(baseUri.OriginalString, str)  
            Else  
                If Not baseUri.ToString.EndsWith("/") Then  
                    returnValue = baseUri.OriginalString & "/" & str  
                Else  
                    returnValue = baseUri.OriginalString & str  
                End If  
            End If  
            Return returnValue  
        End Function  
    End Module  
    
  5. Fermez l'éditeur de macros.Close the Macros IDE. Le focus retourne dans Visual Studio.The focus will return to Visual Studio.

Pour publier un projet avec des paramètres régionaux spécifiquesTo publish a project for a specific locale

  1. Pour créer un projet d’Application Windows de Visual Basic, sur le fichier menu, pointez sur New, puis cliquez sur projet.To create a Visual Basic Windows Application project, on the File menu, point to New, and then click Project.

  2. Dans le nouveau projet boîte de dialogue, sélectionnez Windows Application à partir de la Visual Basic nœud.In the New Project dialog box, select Windows Application from the Visual Basic node. Nommez le projet PublishLocales.Name the project PublishLocales.

  3. Cliquez sur Form1.Click Form1. Dans le propriétés fenêtre, sous conception, modifier le langage propriété à partir de (par défaut) à anglais.In the Properties window, under Design, change the Language property from (Default) to English. Modifier le texte propriété du formulaire à MyForm.Change the Text property of the form to MyForm.

    Notez que les DLL de ressource localisées ne sont pas créées tant qu'elles ne sont pas requises.Note that the localized resource DLLs are not created until they are needed. Par exemple, elles sont créées quand vous modifiez le texte du formulaire ou l'un de ses contrôles, une fois les nouveaux paramètres régionaux spécifiés.For example, they are created when you change the text of the form or one of its controls after you have specified the new locale.

  4. Publier PublishLocales à l’aide de l’IDE Visual Studio.Publish PublishLocales by using the Visual Studio IDE.

    Dans l’Explorateur de solutions, sélectionnez PublishLocales.In Solution Explorer, select PublishLocales. Sur le projet menu, sélectionnez propriétés.On the Project menu, select Properties. Dans le Concepteur de projets, sur le publier , spécifiez un emplacement de publication de http://localhost/PublishLocales, puis cliquez sur publier maintenant.In the Project Designer, on the Publish page, specify a publishing location of http://localhost/PublishLocales, and then click Publish Now.

    Quand la page web de publication apparaît, fermez-la.When the publish Web page appears, close it. (Pour cette étape, vous devez uniquement publier le projet, sans l'installer.)(For this step, you only have to publish the project; you do not have to install it.)

  5. Publier PublishLocales à nouveau en appelant la macro dans la fenêtre d’invite de commandes Visual Studio.Publish PublishLocales again by invoking the macro in the Visual Studio Command Prompt window. Pour afficher la fenêtre d’invite de commandes, sur le vue menu, pointez sur Windows autres puis cliquez sur fenêtre de commande, ou appuyez sur Ctrl + Alt+A.To view the Command Prompt window, on the View menu, point to Other Windows and then click Command Window, or press Ctrl+Alt+A. Dans la fenêtre d’invite de commandes, tapez macros; saisie semi-automatique fournit une liste des macros disponibles.In the Command Prompt window, type macros; auto-complete will provide a list of available macros. Sélectionnez la macro suivante et appuyez sur ENTRÉE :Select the following macro and press ENTER:

    Macros.MyMacros.PublishSpecificCulture.PublishProjectFirstProjectWithEnLocale

  6. Lorsque le processus de publication réussit, il génère un message indiquant « publication a réussi pour Publierparamètresrégionaux\publierparamètresrégionaux.When the publish process succeeds, it will generate a message that says "Publish succeeded for PublishLocales\PublishLocales.vbproj. La langue de publication était « en ». Cliquez sur OK dans la boîte de message.Publish language was 'en'." Click OK in the message box. Lorsque la page Web de publication s’affiche, cliquez sur installer.When the publish Web page appears, click Install.

  7. Regarder dans C:\Inetpub\wwwroot\PublishLocales\en.Look in C:\Inetpub\wwwroot\PublishLocales\en. Vous devez voir les fichiers installés tels que les manifestes, setup.exeet le fichier de page Web de publication, en plus de la DLL de ressource localisée.You should see the installed files such as the manifests, setup.exe, and the publish Web page file, in addition to the localized resource DLL. (Par défaut, ClickOnce ajoute un .deploy extension fichiers exe et DLL ; vous pouvez supprimer cette extension après le déploiement.)(By default ClickOnce appends a .deploy extension on EXEs and DLLs; you can remove this extension after deployment.)

Voir aussiSee also

Publier des applications ClickOnce Publish ClickOnce applications
Environnement de développement des macros Macros development environment
Fenêtre Explorateur de macros Macro Explorer window
Comment : modifier et créer des macros par programmationHow to: Edit and programmatically create macros