Idioma

Tarefa de Gerar Manifesto de Aplicação

Gera um manifesto de aplicação ClickOnce ou um manifesto nativo. Um manifesto nativo descreve um componente definindo uma identidade única para o componente e identificando todos os assemblies e ficheiros que compõem o componente. Um manifesto de aplicação ClickOnce estende um manifesto nativo indicando o ponto de entrada da aplicação e especificando o nível de segurança da aplicação.

Parameters

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

Parâmetro Description
AssemblyName Parâmetro opcional String .

Especifica o Name campo da identidade de assembly para o manifesto gerado. Se este parâmetro não for especificado, o nome é inferido a partir dos EntryPoint parâmetros ou InputManifest . Se não for possível criar um nome, a tarefa gera um erro.
AssemblyVersion Parâmetro opcional String .

Especifica o Version campo da identidade de assembly para o manifesto gerado. Se este parâmetro não for especificado, é usado um valor padrão de "1.0.0.0".
ClrVersion Parâmetro opcional String .

Especifica a versão mínima do Common Language Runtime (CLR) exigida pela aplicação. O valor padrão é a versão CLR utilizada pelo sistema de compilação. Se a tarefa estiver a gerar um manifesto nativo, este parâmetro é ignorado.
ConfigFile Parâmetro opcional ITaskItem[] .

Especifica qual item contém o ficheiro de configuração da aplicação. Se a tarefa estiver a gerar um manifesto nativo, este parâmetro é ignorado.
Dependencies Parâmetro opcional ITaskItem[] .

Especifica uma lista de itens que define o conjunto de assemblies dependentes para o manifesto gerado. Cada item pode ser descrito adicionalmente por metadados do item para indicar o estado adicional de implementação e o tipo de dependência. Para mais informações, consulte Metadados do Item.
Description Parâmetro opcional String .

Especifica a descrição da aplicação ou componente.
EntryPoint Parâmetro opcional ITaskItem[] .

Especifica um único item que indica o ponto de entrada para a assembleia do manifesto gerada.

Para um manifesto de aplicação ClickOnce, este parâmetro especifica o assembly que começa quando a aplicação é executada.
ErrorReportUrl Parâmetro opcional System.String .

Especifica a URL da página web que é exibida nas caixas de diálogo durante os relatórios de erro nas instalações do ClickOnce.
FileAssociations Parâmetro opcional ITaskItem[] .

Especifica uma lista de um ou mais tipos de ficheiros associados ao manifesto de implementação do ClickOnce.

As associações de ficheiros só são válidas apenas quando o .NET Framework 3.5 ou posterior é o alvo.
Files Parâmetro opcional ITaskItem[] .

Os ficheiros a incluir no manifesto. Especifique o caminho completo para cada ficheiro.
HostInBrowser Parâmetro opcional Boolean .

Se true, a aplicação está alojada num navegador (tal como as Aplicações de Navegador Web WPF).
IconFile Parâmetro opcional ITaskItem[] .

Indica o ficheiro de ícones da aplicação. O ícone da aplicação é expresso no manifesto gerado da aplicação e é usado para o Menu Iniciar e o diálogo Adicionar/Remover Programas . Se esta entrada não for especificada, é usado um ícone por defeito. Se a tarefa estiver a gerar um manifesto nativo, este parâmetro é ignorado.
InputManifest Parâmetro opcional ITaskItem .

Indica um documento XML de entrada para servir de base para o gerador de manifestos. Isto permite que dados estruturados, como segurança de aplicações ou definições personalizadas de manifestos, sejam refletidos no manifesto de saída. O elemento raiz no documento XML deve ser um nó assembly no namespace asmv1.
IsolatedComReferences Parâmetro opcional ITaskItem[] .

Especifica componentes COM a isolar no manifesto gerado. Este parâmetro suporta a capacidade de isolar componentes COM para a implementação "Registo Livre de COM". Funciona gerando automaticamente um manifesto com definições padrão de registo COM. No entanto, os componentes COM devem ser registados na máquina de compilação para que isto funcione corretamente.
LauncherBasedDeployment Parâmetro booleano opcional.

Defina isto paraTrue, ao compilar para .NET versões Core 3.1, .NET 5 e posteriores, para garantir que o executável da aplicação é renomeado para o nome esperado após construir o executável anfitrião da aplicaçãoapphost.exe.
ManifestType Parâmetro opcional String .

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

- Native
- ClickOnce

Se este parâmetro não for especificado, a tarefa passa por defeito a ClickOnce.
MaxTargetPath Parâmetro opcional String .

Especifica o comprimento máximo permitido de um caminho de ficheiro numa implementação de aplicação ClickOnce. Se este valor for especificado, o comprimento de cada caminho de ficheiro na aplicação é verificado em relação a este limite. Qualquer item que ultrapasse o limite aparece num aviso de build. Se esta entrada não for especificada ou for zero, então não é realizada verificação. Se a tarefa estiver a gerar um manifesto nativo, este parâmetro é ignorado.
OSVersion Parâmetro opcional String .

Especifica a versão mínima exigida do sistema operativo (SO) exigida pela aplicação. Se este parâmetro não for especificado, é usado o valor "4.10.0.0", o sistema operativo mínimo suportado pelo .NET Framework. Se a tarefa estiver a gerar um manifesto nativo, essa entrada é ignorada.
OutputManifest Parâmetro de saída opcional ITaskItem .

Especifica o nome do ficheiro de manifesto de saída gerado. Se este parâmetro não for especificado, o nome do ficheiro de saída é inferido a partir da identidade do manifesto gerado.
Platform Parâmetro opcional String .

Especifica a plataforma alvo da aplicação. Este parâmetro pode ter os seguintes valores:

- AnyCPU
- x86
- x64
- Itanium

Se este parâmetro não for especificado, a tarefa passa por defeito a AnyCPU.
Product Parâmetro opcional String .

Especifica o nome do aplicativo. Se este parâmetro não for especificado, o nome é inferido a partir da identidade do manifesto gerado. Este nome é usado para o atalho no menu Iniciar e faz parte do nome que aparece na caixa de diálogo Adicionar ou Remover Programas .
Publisher Parâmetro opcional String .

Especifica o editor da aplicação. Se este parâmetro não for especificado, o nome é inferido do utilizador registado ou da identidade do manifesto gerado. Este nome é usado para o nome da pasta no menu Iniciar e faz parte do nome que aparece na caixa de diálogo Adicionar ou Remover Programas .
RequiresMinimumFramework35SP1 Parâmetro opcional Boolean .

Se for verdade, a aplicação requer o .NET Framework 3.5 SP1 ou uma versão mais recente.
TargetCulture Parâmetro opcional String .

Identifica a cultura da aplicação e especifica o Language campo da identidade assembly para o manifesto gerado. Se este parâmetro não for especificado, assume-se que a aplicação é invariante à cultura.
TargetFrameworkMoniker Parâmetro opcional String .

Especifica o nome de framework alvo.
TargetFrameworkProfile Parâmetro opcional String .

Especifica o perfil do framework alvo.
TargetFrameworkSubset Parâmetro opcional String .

Especifica o nome do subconjunto do .NET Framework a ser alvo.
TargetFrameworkVersion Parâmetro opcional String .

Especifica o framework .NET alvo do projeto.
TrustInfoFile Parâmetro opcional ITaskItem .

Indica um documento XML que especifica a segurança da aplicação. O elemento raiz no documento XML deve ser um nó trustInfo no namespace asmv2. Se a tarefa estiver a gerar um manifesto nativo, este parâmetro é ignorado.
UseApplicationTrust Parâmetro opcional Boolean .

Se for verdadeiro, as Productpropriedades , Publisher, e SupportUrl são escritas no manifesto da aplicação.

Remarks

Além dos parâmetros listados acima, essa tarefa herda parâmetros da GenerateManifestBase classe, que herda da Task classe. Para uma lista dos parâmetros da classe Task, veja Task base class.

Para informações sobre como utilizar a GenerateDeploymentManifest tarefa, consulte a tarefa GenerateApplicationManifest.

As entradas para dependências e ficheiros podem ser ainda decoradas com metadados do item para especificar o estado adicional de implementação para cada item.

Metadados do item

Nome dos metadados Description
DependencyType Indica se a dependência é publicada e instalada com a aplicação ou um pré-requisito. Estes metadados são válidos para todas as dependências, mas não são usados para ficheiros. Os valores disponíveis para estes metadados são:

- Install
- Prerequisite

Instalar é o valor padrão.
AssemblyType Indica se a dependência é uma assembly gerida ou nativa. Estes metadados são válidos para todas as dependências, mas não são usados para ficheiros. Os valores disponíveis para estes metadados são:

- Managed
- Native
- Unspecified

Unspecified é o valor padrão, que indica que o gerador de manifestos irá determinar automaticamente o tipo de assembleia.
Group Indica o grupo para descarregar ficheiros adicionais a pedido. O nome do grupo é definido pela aplicação e pode ser qualquer cadeia. Uma cadeia vazia indica que o ficheiro não faz parte de um grupo de download, que é o padrão. Ficheiros que não estão num grupo fazem parte do download inicial da aplicação. Os ficheiros num grupo só são descarregados quando solicitados explicitamente pela aplicação que utiliza System.Deployment.Application.

Estes metadados são válidos para todos os ficheiros onde IsDataFile é false e todas as dependências onde DependencyType é Install.
TargetPath Especifica como o caminho deve ser definido no manifesto gerado. Este atributo é válido para todos os ficheiros. Se este atributo não for especificado, utiliza-se a especificação do item. Este atributo é válido para todos os ficheiros e dependências com DependencyType valor de Install.
IsDataFile Um Boolean valor de metadados que indica se o ficheiro é ou não um ficheiro de dados. Um ficheiro de dados é especial porque é migrado entre atualizações de aplicação. Estes metadados só são válidos para ficheiros. False é o valor padrão.

Exemplo 1

Este exemplo utiliza a GenerateApplicationManifest tarefa para gerar um manifesto de aplicação ClickOnce e a GenerateDeploymentManifest tarefa para gerar um manifesto de implementação para uma aplicação com um único assembly. Depois, utiliza a SignFile tarefa para assinar os manifestos.

Isto ilustra o cenário mais simples possível de geração de manifestos, onde manifestos ClickOnce são gerados para um único programa. Um nome e identidade por defeito são inferidos a partir da montagem do manifesto.

Note

No exemplo abaixo, todos os binários de aplicação são pré-construídos para se focarem nos aspetos de geração de manifestos. Este exemplo produz uma implementação ClickOnce totalmente funcional.

Note

Para mais informações sobre a Thumbprint propriedade usada na SignFile tarefa neste exemplo, veja a tarefa SignFile.

<Project DefaultTargets="Build">

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

Exemplo 2

Este exemplo utiliza as GenerateApplicationManifest tarefas e GenerateDeploymentManifest para gerar manifestos de aplicação e implementação ClickOnce para uma aplicação com um único assembly, especificando o nome e a identidade dos manifestos.

Este exemplo é semelhante ao anterior, exceto que o nome e a identidade dos manifestos estão explicitamente especificados. Além disso, este exemplo está configurado como uma aplicação online em vez de uma aplicação instalada.

Note

No exemplo abaixo, todos os binários de aplicação são pré-construídos para se focarem nos aspetos de geração de manifestos. Este exemplo produz uma implementação ClickOnce totalmente funcional.

Note

Para mais informações sobre a Thumbprint propriedade usada na SignFile tarefa neste exemplo, veja a tarefa SignFile.

<Project DefaultTargets="Build">

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

Exemplo 3

Este exemplo utiliza as GenerateApplicationManifest tarefas e GenerateDeploymentManifest para gerar manifestos de aplicação e implementação ClickOnce para uma aplicação com múltiplos ficheiros e assemblies.

Note

No exemplo abaixo, todos os binários de aplicação são pré-construídos para se focarem nos aspetos de geração de manifestos. Este exemplo produz uma implementação ClickOnce totalmente funcional.

Note

Para mais informações sobre a Thumbprint propriedade usada na SignFile tarefa neste exemplo, veja a tarefa SignFile.

<Project DefaultTargets="Build">

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

Exemplo 4

Este exemplo utiliza a GenerateApplicationManifest tarefa para gerar um manifesto nativo para aplicação Test.exe, referenciando componentes nativosAlpha.dll e um componente COM isoladoBravo.dll.

Este exemplo produz o Test.exe.manifest, tornando a aplicação XCOPY implementável e tirando partido do Registration Free COM.

Note

No exemplo abaixo, todos os binários de aplicação são pré-construídos para se focarem nos aspetos de geração de manifestos. Este exemplo produz uma implementação ClickOnce totalmente funcional.

<Project DefaultTargets="Build">

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

Ver também