wfc.exe (Ferramenta do Compilador de Linha de Comando do Fluxo de Trabalho)

Observação

Esse material discute tipos e namespaces obsoletos.

A ferramenta do compilador de linha de comando do fluxo de trabalho wfc.exe funciona com arquivos de marcação de fluxo de trabalho antigos que têm a extensão de arquivo .xoml (obsoleta).

Processo de compilação

Quando os fluxos de trabalho são compilados, os procedimentos a seguir são executados como parte do processo de compilação:

  • A validação é executada para garantir que as atividades de fluxo de trabalho sejam validadas com base nas regras que as atividades definiram para si mesmas. Se houver erros de validação, o compilador retornará uma lista dos erros.

  • Uma classe parcial é gerada a partir da definição de marcação que é a entrada no compilador.

  • O código é gerado para ajudar na execução de runtime das atividades. As assinaturas de evento são geradas, o que ajuda as atividades a saber quando as atividades que elas contêm são executadas.

  • As classes parciais geradas a partir do arquivo de marcação e as classes parciais do arquivo de código são inseridas no compilador do .NET Framework C# ou do Visual Basic. A saída desse processo é o assembly .NET, WorkflowSample.dll. Isso pode ser implantado para executar o fluxo de trabalho.

Opções do compilador

Esta seção mostra as opções para o compilador de linha de comando do fluxo de trabalho wfc.exe.

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

Observações

Observação

Esse material discute tipos e namespaces obsoletos.

Uma lista de tipos autorizados geralmente é definida no arquivo wfc.exe.config . Durante a fase de validação da compilação do fluxo de trabalho, um documento de origem de fluxo de trabalho será rejeitado se ele ou o arquivo de regras complementares fizer referência diretamente a qualquer tipo do .NET Framework não presente em uma lista de tipos autorizados. A lista de tipos autorizados é um documento XML em que cada entrada indica um Assemblyindicador NamespaceTypeName{True|False} autorizado. AuthorizedType corresponde a uma entrada na lista. Designações de caractere curinga, que podem ser usadas para incluir ou excluir namespaces completos, são permitidas. Por exemplo, Type="System.*" inclui todos os tipos, Systemincluindo tipos contidos em namespaces filho.

O uso de uma lista de tipos autorizados é controlado pela opção WorkflowCompiler'/checktypes'.

<configuration>
  <System.Workflow.ComponentModel.WorkflowCompiler>
    <authorizedTypes>
      <targetFx version="v4.0">
        ...
        <authorizedType Assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Namespace="System*" TypeName="*" Authorized="True"/>
        ...
      </targetFx>
    </authorizedTypes>
  </System.Workflow.ComponentModel.WorkflowCompiler>
</configuration>

Aviso

Quando Type="System.*" o tipo está presente, é possível incluir outros tipos não intencionais, como Type="System.Configuration", para compilação. Você deve ser cauteloso e revisar cada um deles. Para qualquer tipo que deve ser restrito, certifique-se de definir Authorized como False.

Consulte também