Condividi tramite


Procedura: compilare flussi di lavoro

È possibile costruire flussi di lavoro in tre modi:

  • Utilizzando in modo dichiarativo markup del flusso di lavoro in un file di markup del flusso di lavoro con estensione xoml. Tale file del flusso di lavoro può quindi essere compilato con il compilatore del flusso di lavoro o passato nel motore di runtime del flusso di lavoro tramite un'applicazione host senza essere compilato. Tale operazione viene denominata creazione di flussi di lavoro senza codice. Per ulteriori informazioni, vedere Utilizzo dei markup del flusso di lavoro. L'estensione del file creato è xoml.

  • Il file di markup può essere utilizzato per dichiarare il flusso di lavoro ma viene poi compilato con un file di codice che contiene la logica di implementazione. Tale operazione viene denominata creazione di flussi di lavoro con separazione del codice. In questo caso i file creati presenteranno l'estensione xoml e xoml.cs o xoml.vb.

  • Utilizzando il modello a oggetti di Windows Workflow Foundation in un file di codice. Tale operazione viene denominata creazione di flussi di lavoro con solo codice. In questo caso i file creati avranno l'estensione di file di codice sorgente standard di C# o di Visual Basic. Tali file vengono inoltre compilati.

Processo di compilazione

Nell'ambito del processo di compilazione dei flussi di lavoro, vengono eseguite le procedure seguenti:

  • Viene eseguita la convalida per confermare la validità delle attività del flusso di lavoro rispetto alle regole impostate dalle attività stesse. Se si verificano errori di convalida, il compilatore ne restituisce un elenco.

  • Dalla definizione del markup viene generata una classe parziale, che viene inserita nel compilatore.

  • Viene generato codice per favorire l'esecuzione delle attività nel runtime. Vengono generate sottoscrizioni di evento, che consentono alle attività di venire a conoscenza del momento in cui termina l'esecuzione delle attività contenute.

  • Le classi parziali generate dal file di markup e le classi parziali generate dal file di codice vengono immesse nel compilatore C# o Visual Basic di .NET Framework. L'output di questo processo è l'assembly .NET, WorkflowSample.dll, che può essere distribuito per eseguire il flusso di lavoro.

Utilizzo del compilatore da riga di comando di flussi di lavoro wfc.exe.

Windows Workflow Foundation fornisce un compilatore di flussi di lavoro da riga di comando denominato wfc.exe. Fornisce inoltre un insieme di tipi pubblici che supportano la compilazione del flusso di lavoro per lo sviluppo di compilatori personalizzati. Questi tipi pubblici sono gli stessi utilizzati internamente da wfc.exe. È possibile creare una versione personalizzata del compilatore utilizzando la classe WorkflowCompiler.

È inoltre possibile utilizzare la classe WorkflowCompiler per compilare flussi di lavoro come indicato nel semplice esempio seguente.

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

Per ulteriori informazioni, vedere la classe WorkflowCompiler nel riferimento alla libreria di classi di Windows Workflow Foundation.

Opzioni del compilatore

Le opzioni del compilatore da riga di comando di flussi di lavoro wfc.exe sono documentate nel codice seguente.

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'.

Vedere anche

Riferimenti

WorkflowCompiler

Concetti

Modalità di creazione flussi di lavoro
Serializzazione di attività personalizzate
Procedura: serializzare i flussi di lavoro

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.