Utilisation de plusieurs langages spécifiques à un domaine dans une solutionMultiple DSLs in One Solution

Vous pouvez empaqueter plusieurs DSL comme partie intégrante d'une seule solution de telle sorte qu'ils soient installés ensemble.You can package several DSLs as part of a single solution so that they are installed together.

Il existe différentes techniques pour intégrer plusieurs DSL.You can use several techniques to integrate multiple DSLs. Pour plus d’informations, consultez intégration de modèles à l’aide de Visual Studio Modelbus et Comment : ajouter un gestionnaire de glisser-déplacer et personnalisation de comportement de copie.For more information, see Integrating Models by using Visual Studio Modelbus and How to: Add a Drag-and-Drop Handler and Customizing Copy Behavior.

Pour créer plusieurs DSL dans la même solutionTo build more than one DSL in the same solution

  1. Créez au moins deux solutions DSL, ainsi qu'un projet VSIX, et ajoutez tous les projets à une solution unique.Create two or more DSL solutions and a VSIX project, and add all the projects to a single solution.

    • Pour créer un projet VSIX : dans le nouveau projet boîte de dialogue, sélectionnez Visual C#, extensibilité, projet VSIX.To create a new VSIX project: In the New Project dialog, select Visual C#, Extensibility, VSIX Project.

    • Créez au moins deux solutions DSL dans le répertoire de solutions VSIX.Create two or more DSL solutions in the VSIX solution directory.

      Pour chaque DSL, ouvrez une nouvelle instance de Visual Studio.For each DSL, open a new instance of Visual Studio. Créez le DSL et spécifiez le même dossier de solution que la solution VSIX.Create the new DSL, and specify the same solution folder as the VSIX solution.

      Assurez-vous que vous créez chaque DSL avec une extension de nom de fichier différente.Make sure that you create each DSL with a different filename extension.

    • Modifier les noms de la Dsl et DslPackage projets afin qu’ils soient tous différents.Change the names of the Dsl and DslPackage projects so that they are all different. Par exemple : Dsl1, DslPackage1, Dsl2, DslPackage2.For example: Dsl1, DslPackage1, Dsl2, DslPackage2.

    • Dans chaque DslPackage*\source.extension.tt, mettre à jour de cette ligne vers le nom du projet Dsl correct :In each DslPackage*\source.extension.tt, update this line to the correct Dsl project name:

      string dslProjectName = "Dsl2";

    • Dans la solution VSIX, ajoutez la Dsl * et DslPackage* projets.In the VSIX solution, add the Dsl* and DslPackage* projects.

      Il se peut que vous souhaitiez placer chaque paire dans son propre dossier de solution.You might want to place each pair in its own solution folder.

  2. Regroupez les manifestes VSIX des DSL :Combine the VSIX manifests of the DSLs:

    1. Ouvrez * YourVsixProject \source.extension.manifest*.Open *YourVsixProject\source.extension.manifest*.

    2. Pour chaque DSL, choisissez ajouter du contenu et ajouter :For each DSL, choose Add Content and add:

      • Dsl* projet comme un composant MEFDsl* project as a MEF Component

      • DslPackage* projet comme un composant MEFDslPackage* project as a MEF Component

      • DslPackage* projet comme un Package VSDslPackage* project as a VS Package

  3. Générez la solution.Build the solution.

    Le VSIX résultant installera les deux DSL.The resulting VSIX will install both DSLs. Vous pouvez les tester à l’aide de F5 ou déployer * YourVsixProject *\bin\Debug\*.vsix.You can test them by using F5, or deploy *YourVsixProject*\bin\Debug\*.vsix.

Voir aussiSee Also