Partilhar via


Tarefa GenerateApplicationManifest

Gera um ClickOnce manifesto do aplicativo ou um manifesto nativo. Um manifesto nativo descreve um componente definindo uma identidade exclusiva para o componente e identificar todos os assemblies e arquivos que compõem o componente. A ClickOnce manifesto do aplicativo estende um manifesto nativo indicando o ponto de entrada do aplicativo, e especificando o nível de segurança do aplicativo.

Parâmetros

A tabela a seguir descreve os parâmetros para o GenerateApplicationManifest tarefa.

Parâmetro

Descrição

AssemblyName

Opcional String parâmetro.

Especifica o Name campo da identidade do assembly para obter o manifesto gerado. Se este parâmetro não for especificado, o nome é inferido do EntryPoint ou InputManifest parâmetros. Se nenhum nome pode ser criado, a tarefa lança um erro.

AssemblyVersion

Opcional String parâmetro.

Especifica o Version campo da identidade do assembly para obter o manifesto gerado. Se este parâmetro não for especificado, um valor padrão de "1.0.0.0" será usado.

ClrVersion

Opcional String parâmetro.

Especifica a versão mínima do CLR Common linguagem tempo de execução () necessários para o aplicativo. O valor padrão é a versão do CLR em uso pelo sistema de compilação. Se a tarefa está gerando um manifesto nativo, esse parâmetro será ignorado.

ConfigFile

Opcional ITaskItem[] parâmetro.

Especifica qual item contém o arquivo de configuração do aplicativo. Se a tarefa está gerando um manifesto nativo, esse parâmetro será ignorado.

Dependencies

Opcional ITaskItem[] parâmetro.

Especifica uma lista de itens que define o conjunto de módulos (assemblies) dependentes para o manifesto gerado. Cada item pode ser descrito com mais detalhes por metadados de item para indicar o estado de implantação adicionais e o tipo de dependência. Para obter mais informações, consulte a seção de "Metadados de item" abaixo.

Description

Opcional String parâmetro.

Especifica a descrição para o aplicativo ou componente.

EntryPoint

Opcional ITaskItem[] parâmetro.

Especifica um único item que indica o ponto de entrada para o assembly do manifesto gerado.

Para um ClickOnce manifesto do aplicativo, esse parâmetro específica o assembly que é iniciado quando o aplicativo é executado.

Files

Opcional ITaskItem[] parâmetro.

Os arquivos a serem incluídos no manifesto. Especifique o caminho completo para cada arquivo.

IconFile

Opcional ITaskItem[] parâmetro.

Indica o arquivo de ícone do aplicativo. O ícone do aplicativo é expresso no manifesto do aplicativo gerados e é usado para a caixa de diálogo Menu Iniciar e adicionar ou remover programas. Se essa entrada não for especificada, um ícone padrão será usado. Se a tarefa está gerando um manifesto nativo, esse parâmetro será ignorado.

InputManifest

Opcional ITaskItem parâmetro.

Indica um documento XML de entrada para servir sistema autônomo base para o gerador de manifesto. Isso permite que dados estruturados, sistema autônomo aplicativo segurança ou personalizadas manifesto definições sejam refletidas no manifesto da saída. O elemento raiz do documento XML deve ser um nó de assembly no namespace asmv1.

IsolatedComReferences

Opcional ITaskItem[] parâmetro.

Especifica os componentes COM para isolar no manifesto gerado. Este parâmetro oferece suporte à capacidade de isolar os componentes COM para a implantação de “ inscrição disponível COM ”. Ele funciona ao gerar automaticamente um manifesto com definições padrão de inscrição COM. No entanto, os componentes COM devem ser registrados na computador de compilação para que isso funcione corretamente.

ManifestType

Opcional String parâmetro.

Especifica o tipo de manifesto para gerar. Este parâmetro pode ter os seguintes valores:

  • Native

  • ClickOnce

Se este parâmetro não for especificado, a tarefa padrão ClickOnce.

MaxTargetPath

Opcional String parâmetro.

Especifica o comprimento máximo permitido de um caminho de arquivo em um ClickOnce aplicativo implantação. Se esse valor for especificado, o comprimento de cada caminho de arquivo no aplicativo será verificado em relação esse limite. Todos os itens que excedem o limite irão gerar um aviso de compilação. Se essa entrada não for especificada ou for zero, então nenhuma verificação será executada. Se a tarefa está gerando um manifesto nativo, esse parâmetro será ignorado.

OSVersion

Opcional String parâmetro.

Especifica a versão mínima necessário sistema operacional (SO) necessários para o aplicativo. Por exemplo, o valor “ 5.1.2600.0 ” indica que o sistema operacional for Windows XP. Se este parâmetro não for especificado, será usado o valor "4.10.0.0", que indica que o Windows 98 Second edição, o mínimo suportado sistema operacional do .NET estrutura. Se a tarefa está gerando um manifesto nativo, essa entrada será ignorada.

OutputManifest

Opcional ITaskItem parâmetro de saída.

Especifica o nome do arquivo de manifesto da saída gerada. Se este parâmetro não for especificado, o nome do arquivo de saída é deduzido a partir da identidade do manifesto gerado.

Platform

Opcional String parâmetro.

Especifica a plataforma de destino do aplicativo. Este parâmetro pode ter os seguintes valores:

  • AnyCPU

  • x86

  • x64

  • Itanium

Se este parâmetro não for especificado, a tarefa padrão AnyCPU.

TargetCulture

Opcional String parâmetro.

Identifica a cultura do aplicativo e especifica o Language campo da identidade do assembly para obter o manifesto gerado. Se este parâmetro não for especificado, supõe-se que o aplicativo é a cultura invariável.

TrustInfoFile

Opcional ITaskItem parâmetro.

Indica um documento XML que especifica a segurança do aplicativo. O elemento raiz do documento XML deve ser um nó trustInfo no namespace asmv2. Se a tarefa está gerando um manifesto nativo, esse parâmetro será ignorado.

Comentários

As entradas de dependências e arquivos podem ser ainda mais decoradas com metadados de item para especificar o estado de implantação adicionais para cada item.

Metadados de item

Nome de metadados

Descrição

DependencyType

Indica se a dependência é publicada e instalada com o aplicativo ou pré-requisito. Esses metadados é válido para todas as dependências, mas não é usado para arquivos. Os valores disponível para esses metadados são:

  • Install

  • Prerequisite

instalar é o valor padrão.

AssemblyType

Indica se a dependência é um gerenciada ou um assembly nativo. Esses metadados é válido para todas as dependências, mas não é usado para arquivos. Os valores disponível para esses metadados são:

  • Managed

  • Native

  • Unspecified

Unspecified é o valor padrão, que indica que o gerador de manifesto determinará o tipo de montagem automaticamente.

Group

Indica o agrupar para o download de arquivos adicionais sob demanda. O nome de agrupar é definido pelo aplicativo e pode ser qualquer seqüência de caracteres. Uma seqüência de caracteres vazia indica que o arquivo não é parte de um agrupar de baixar, que é o padrão. Arquivos não em um agrupar fazem parte do baixar inicial do aplicativo. Arquivos em um agrupar somente são baixados quando explicitamente solicitada pelo aplicativo usando System.Deployment.Application.

Esses metadados são válido para todos os arquivos em que IsDataFile é false todas as dependências e onde DependencyType é Install.

TargetPath

Especifica como o caminho deve ser definido no manifesto gerado. Esse atributo é válido para todos os arquivos. Se este atributo não for especificado, a especificação do item será usada. Esse atributo é válido para todos os arquivos e as dependências com um DependencyType valor de Install.

IsDataFile

A Boolean valor de metadados que indica se o arquivo é um arquivo de dados. Um arquivo de dados é especial que é migrado entre atualizações de aplicativos. Esses metadados só é válido para os arquivos. False é o valor padrão.

Exemplo

Este exemplo usa o GenerateApplicationManifest tarefa para gerar um ClickOnce manifesto do aplicativo e o GenerateDeploymentManifest tarefa para gerar um manifesto de implantação de um aplicativo com um único assembly. Em seguida, ele usa o SignFile tarefa para assinar os manifestos.

Isso ilustra o cenário mais simples de geração de manifesto possíveis em que ClickOnce manifestos são gerados para um único programa. Uma identidade e o nome padrão são inferidos do conjunto de módulos (assembly) para obter o manifesto.

ObservaçãoObservação:

No exemplo a seguir, todos os binários do aplicativo são predefinidos para se concentrar em aspectos da geração de manifesto. Este exemplo produz uma totalmente trabalhando Implantação ClickOnce.

ObservaçãoObservação:

Para obter mais informações sobre o Thumbprint propriedade usada no SignFile tarefa neste exemplo, consulte Tarefa SignFile.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
    </PropertyGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            EntryPoint="@(EntryPoint)">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
            EntryPoint="@(ApplicationManifest)">
            <Output
                ItemName="DeployManifest"
                TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

Este exemplo usa o GenerateApplicationManifest e GenerateDeploymentManifest tarefas para gerar ClickOnce manifestos de aplicativo e implantação para um aplicativo com um único assembly, especificar o nome e a identidade dos manifestos.

Este exemplo é semelhante ao exemplo anterior, exceto o nome e a identidade dos manifestos são explicitamente especificados. Além disso, este exemplo é configurado sistema autônomo um aplicativo online em vez de um aplicativo instalado.

ObservaçãoObservação:

No exemplo a seguir, todos os binários do aplicativo são predefinidos para se concentrar em aspectos da geração de manifesto. Este exemplo produz uma totalmente trabalhando Implantação ClickOnce.

ObservaçãoObservação:

Para obter mais informações sobre o Thumbprint propriedade usada no SignFile tarefa neste exemplo, consulte Tarefa SignFile.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
    </PropertyGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            AssemblyName="SimpleWinApp.exe"
            AssemblyVersion="1.0.0.0"
            EntryPoint="@(EntryPoint)"
            OutputManifest="SimpleWinApp.exe.manifest">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
                AssemblyName="SimpleWinApp.application"
                AssemblyVersion="1.0.0.0"
                EntryPoint="@(ApplicationManifest)"
                Install="false"
                OutputManifest="SimpleWinApp.application">
                <Output
                    ItemName="DeployManifest"
                    TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

Este exemplo usa o GenerateApplicationManifest e GenerateDeploymentManifest tarefas para gerar ClickOnce implantação de aplicativos e manifestos de um aplicativo com vários assemblies e arquivos.

ObservaçãoObservação:

No exemplo a seguir, todos os binários do aplicativo são predefinidos para se concentrar em aspectos da geração de manifesto. Este exemplo produz uma totalmente trabalhando Implantação ClickOnce.

ObservaçãoObservação:

Para obter mais informações sobre o Thumbprint propriedade usada no SignFile tarefa neste exemplo, consulte Tarefa SignFile.

<Project DefaultTargets="Build"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe" />
    </ItemGroup>

    <PropertyGroup>
        <Thumbprint>
             <!-- Insert generated thumbprint here -->
        </Thumbprint>
        <DeployUrl>
            <!-- Insert the deployment URL here -->
        </DeployUrl>
        <SupportUrl>
            <!-- Insert the support URL here -->
        </SupportUrl>
    </PropertyGroup>

    <Target Name="Build">

    <ItemGroup>
        <EntryPoint Include="SimpleWinApp.exe"/>
        <Dependency Include="ClassLibrary1.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
        </Dependency>
        <Dependency Include="ClassLibrary2.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
            <Group>Secondary</Group>
        </Dependency>
        <Dependency Include="MyAddIn1.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Install</DependencyType>
            <TargetPath>Addins\MyAddIn1.dll</TargetPath>
        </Dependency>
        <Dependency Include="ClassLibrary3.dll">
            <AssemblyType>Managed</AssemblyType>
            <DependencyType>Prerequisite</DependencyType>
        </Dependency>

        <File Include="Text1.txt">
            <TargetPath>Text\Text1.txt</TargetPath>
            <Group>Text</Group>
        </File>
        <File Include="DataFile1.xml ">
            <TargetPath>Data\DataFile1.xml</TargetPath>
            <IsDataFile>true</IsDataFile>
        </File>

        <IconFile Include="Heart.ico"/>
        <ConfigFile Include="app.config">
            <TargetPath>SimpleWinApp.exe.config</TargetPath>
        </ConfigFile>
        <BaseManifest Include="app.manifest"/>
    </ItemGroup>

    <Target Name="Build">

        <GenerateApplicationManifest
            AssemblyName="SimpleWinApp.exe"
            AssemblyVersion="1.0.0.0"
            ConfigFile="@(ConfigFile)"
            Dependencies="@(Dependency)"
            Description="TestApp"
            EntryPoint="@(EntryPoint)"
            Files="@(File)"
            IconFile="@(IconFile)"
            InputManifest="@(BaseManifest)"
            OutputManifest="SimpleWinApp.exe.manifest">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

        <GenerateDeploymentManifest
            AssemblyName="SimpleWinApp.application"
            AssemblyVersion="1.0.0.0"
            DeploymentUrl="$(DeployToUrl)"
            Description="TestDeploy"
            EntryPoint="@(ApplicationManifest)"
            Install="true"
            OutputManifest="SimpleWinApp.application"
            Product="SimpleWinApp"
            Publisher="Microsoft"
            SupportUrl="$(SupportUrl)"
            UpdateEnabled="true"
            UpdateInterval="3"
            UpdateMode="Background"
            UpdateUnit="weeks">
            <Output
                ItemName="DeployManifest"
                TaskParameter="OutputManifest"/>
        </GenerateDeploymentManifest>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(ApplicationManifest)"/>

        <SignFile
            CertificateThumbprint="$(Thumbprint)"
            SigningTarget="@(DeployManifest)"/>

    </Target>
</Project>

Este exemplo usa o GenerateApplicationManifest tarefa para gerar um manifesto nativo para o aplicativo teste.exe, fazendo referência a componente nativo alfa.dll e um componente COM isolado Bravo.dll.

Este exemplo produz teste.exe.manifesto, tornando a vantagem aplicativo XCOPY levando implantável COM. disponível inscrição

ObservaçãoObservação:

No exemplo a seguir, todos os binários do aplicativo são predefinidos para se concentrar em aspectos da geração de manifesto. Este exemplo produz uma totalmente trabalhando Implantação ClickOnce.

<Project DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <File Include="Test.exe" />
        <Dependency Include="Alpha.dll">
            <AssemblyType>Native</AssemblyType>
            <DependencyType>Install</DependencyType>
        </Dependency>
        <ComComponent Include="Bravo.dll" />
    </ItemGroup>

    <Target Name="Build">
        <GenerateApplicationManifest
            AssemblyName="Test.exe"
            AssemblyVersion="1.0.0.0"
            Dependencies="@(Dependency)"
            Files="@(File)"
            IsolatedComReferences="@(ComComponent)"
            ManifestType="Native">
            <Output
                ItemName="ApplicationManifest"
                TaskParameter="OutputManifest"/>
        </GenerateApplicationManifest>

    </Target>
</Project>

Consulte também

Conceitos

Tarefas do MSBuild

Referência

Tarefa GenerateDeploymentManifest

Tarefa SignFile

Outros recursos

Referência de tarefa do MSBuild