Partager via


Comment : compiler des workflows

Vous pouvez construire des workflows de trois manières :

  • En utilisant de façon déclarative les marques de révision du workflow dans un fichier de marques du workflow qui porte l'extension de nom de fichier .xoml. Ce fichier de workflow peut ensuite être compilé avec le compilateur de workflow ou être passé à une application hôte dans le moteur d'exécution de workflow sans être compilé. Cette opération est connue sous le nom de création de workflow sans code. Pour plus d'informations, consultez Utilisation de la balise de workflow. Le fichier créé porte une extension de fichier .xoml.

  • Le fichier de balisage peut être utilisé pour déclarer le workflow, mais il est ensuite compilé avec un fichier de code qui contient la logique d'implémentation. Cette opération est connue sous le nom de création du workflow de séparation de code. Dans ce cas, les fichiers créés ont des extensions .xoml et .xoml.cs ou .xoml.vb.

  • En utilisant le modèle objet Windows Workflow Foundation dans un fichier de code. Cette opération est connue sous le nom de création de workflow de code uniquement. Dans ce cas, les fichiers créés ont des extensions de fichier de code source C# ou Visual Basic standard. Ces fichiers sont également compilés.

Processus de compilation

Lorsque les workflows sont compilés, les procédures suivantes sont effectuées dans le cadre du processus de compilation :

  • La validation est effectuée pour s'assurer que les activités de workflow soient validées selon les règles que les activités ont établies pour eux-mêmes. En cas d'erreurs de validation, le compilateur retourne une liste des erreurs.

  • Une classe partielle est générée par la définition de balise entrée dans le compilateur.

  • Le code est généré pour faciliter l'exécution du runtime des activités. Les abonnements d'événement sont générés, afin de permettre aux activités de savoir quand les activités qu'elles contiennent auront terminé de s'exécuter.

  • Les classes partielles générées par le fichier de balisage et les classes partielles du fichier de code sont introduites dans le compilateur C# ou Visual Basic du .NET Framework. La sortie de ce processus est l'assembly .NET, WorkflowSample.dll. Ceci peut être déployé en vue d'exécuter le workflow.

Utilisation du compilateur de ligne de commande du workflow wfc.exe

Windows Workflow Foundation fournit un compilateur de workflow de ligne de commande nommé wfc.exe. Windows Workflow Foundation fournit également un jeu de types publics qui prennent en charge la compilation de workflow pour développement du compilateur personnalisé. Ces types publics sont les mêmes types utilisés en interne par wfc.exe. Vous pouvez créer une version personnalisée du compilateur en utilisant la classe WorkflowCompiler.

Vous pouvez également utiliser la classe WorkflowCompiler pour compiler des workflows comme indiqué dans l'exemple suivant.

WorkflowCompiler compiler = new WorkflowCompiler();
WorkflowCompilerParameters param = new WorkflowCompilerParameters();
compiler.Compile(param, new string[] { "MainWorkflow.xoml" });

Pour plus d'informations, consultez la classe WorkflowCompiler dans la référence de la bibliothèque de classes de Windows Workflow Foundation.

Options du compilateur

Les options du compilateur de ligne de commande du workflow wfc.exe sont détaillées dans la rubrique de style de code suivante.

Microsoft (R) Windows Workflow Compiler version 3.0.0.0
Copyright (C) Microsoft Corporation 2005. All rights reserved.

                  Windows Workflow Compiler Options

wfc.exe <Xoml file list> /target:assembly [<vb/cs file list>] [/language:...] 
        [/out:...] [/reference:...] [/library:...] [/debug...] [/nocode...] 
         [/checktypes...] [/resource:<resource info>]

                        - OUTPUT FILE -
/out:<file>             Output file name
/target:assembly        Build a Windows Workflow assembly (default).
                        Short form: /t:assembly
/target:exe             Build a Windows Workflow application.
                        Short form: /t:exe
/delaysign[+|-]         Delay-sign the assembly using only the public portion
                        of the strong name key.
/keyfile:<file>         Specifies a strong name key file.
/keycontainer:<string>  Specifies a strong name key container.

                        - INPUT FILES -
<Xoml file list>        Xoml source file name(s).
<vb/cs file list>       Code-beside file name(s).
/reference:<file list>  Reference metadata from the specified assembly file(s).
                        Short form is '/r:'.
/library:<path list>    Set of directories where to lookup for the references.
                        Short form is '/lib:'.
/resource:<resinfo>     Embed the specified resource. Short form is '/res:'.
                        resinfo format is <file>[,<name>[,public|private]].

Rules and freeform layout files must be embedded as assembly resources.
The resource name is constructed by using the namespace and type name
of the activity. For example, an activity named "MyActivity" in namespace
"WFProject" would require resource names "WFProject.MyActivity.rules"
and/or "WFProject.MyActivity.layout".

                        - CODE GENERATION -
/debug[+|-]             Emit full debugging information. The default is '+'.
/nocode[+|-]            Disallow code-beside model.
                        The default is '-'. Short form is '/nc:'.
/checktypes[+|-]        Check for permitted types in wfc.exe.config file.
                        The default is '-'. Short form is '/ct:'.

                        - LANGUAGE -
/language:[cs|vb]       The language to use for the generated class.
                        The default is 'CS' (C#). Short form is '/l:'.
/rootnamespace:<string> Specifies the root Namespace for all type declarations.
                        Valid only for 'VB' (Visual Basic) language.
                        Short form is '/rns:'.

                        - MISCELLANEOUS -
/help                   Display this usage message. Short form is '/?'.
/nologo                 Suppress compiler copyright message. Short form is '/n'.

/nowarn                 Ignore compiler warnings. Short form is '/w'.

Voir aussi

Référence

WorkflowCompiler

Concepts

Modes de création de workflows
Sérialisation d'activités personnalisées
Comment : sérialiser des workflows

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.