GenerateApplicationManifest – úloha

Generuje manifest aplikace ClickOnce nebo nativní manifest. Nativní manifest popisuje komponentu definováním jedinečné identity pro komponentu a identifikací všech sestavení a souborů, které tvoří komponentu. Manifest aplikace ClickOnce rozšiřuje nativní manifest tím, že označuje vstupní bod aplikace a určuje úroveň zabezpečení aplikace.

Parametry

Následující tabulka popisuje parametry úlohy GenerateApplicationManifest .

Parametr Popis
AssemblyName Volitelný String parametr.

Určuje Name pole identity sestavení pro vygenerovaný manifest. Pokud tento parametr není zadaný, název se odvodí z EntryPoint parametrů nebo InputManifest parametrů. Pokud nelze vytvořit žádný název, úloha vyvolá chybu.
AssemblyVersion Volitelný String parametr.

Určuje Version pole identity sestavení pro vygenerovaný manifest. Pokud tento parametr není zadaný, použije se výchozí hodnota 1.0.0.0.
ClrVersion Volitelný String parametr.

Určuje minimální verzi modulu CLR (Common Language Runtime), kterou aplikace vyžaduje. Výchozí hodnota je verze CLR, kterou používá systém sestavení. Pokud úloha generuje nativní manifest, bude tento parametr ignorován.
ConfigFile Volitelný ITaskItem[] parametr.

Určuje, která položka obsahuje konfigurační soubor aplikace. Pokud úloha generuje nativní manifest, bude tento parametr ignorován.
Dependencies Volitelný ITaskItem[] parametr.

Určuje seznam položek, který definuje sadu závislých sestavení pro vygenerovaný manifest. Jednotlivé položky mohou být dále popsány metadaty položek, které označují další stav nasazení a typ závislosti. Další informace najdete v tématu Metadata položky.
Description Volitelný String parametr.

Určuje popis aplikace nebo komponenty.
EntryPoint Volitelný ITaskItem[] parametr.

Určuje jednu položku, která označuje vstupní bod pro vygenerované sestavení manifestu.

Pro manifest aplikace ClickOnce určuje tento parametr sestavení, které se spustí při spuštění aplikace.
ErrorReportUrl Volitelný System.String parametr.

Určuje adresu URL webové stránky, která se zobrazí v dialogových oknech během hlášení chyb v instalacích ClickOnce.
FileAssociations Volitelný ITaskItem[] parametr.

Určuje seznam jednoho nebo více typů souborů přidružených k manifestu nasazení ClickOnce.

Přidružení souborů platí pouze v případech, kdy je cílem rozhraní .NET Framework 3.5 nebo novější.
Files Volitelný ITaskItem[] parametr.

Soubory, které se mají zahrnout do manifestu. Zadejte úplnou cestu pro každý soubor.
HostInBrowser Volitelný Boolean parametr.

Pokud trueje aplikace hostovaná v prohlížeči (stejně jako aplikace webového prohlížeče WPF).
IconFile Volitelný ITaskItem[] parametr.

Označuje soubor ikony aplikace. Ikona aplikace se vyjadřuje v manifestu vygenerované aplikace a používá se pro nabídku Start a dialogové okno Přidat nebo odebrat programy . Pokud tento vstup není zadaný, použije se výchozí ikona. Pokud úloha generuje nativní manifest, bude tento parametr ignorován.
InputManifest Volitelný ITaskItem parametr.

Označuje vstupní dokument XML, který bude sloužit jako základ pro generátor manifestu. To umožňuje, aby se strukturovaná data, jako je zabezpečení aplikace nebo vlastní definice manifestu, projevily ve výstupním manifestu. Kořenový prvek v dokumentu XML musí být uzel sestavení v oboru názvů asmv1.
IsolatedComReferences Volitelný ITaskItem[] parametr.

Určuje komponenty modelu COM, které se mají izolovat v generovaném manifestu. Tento parametr podporuje možnost izolovat komponenty modelu COM pro nasazení modelu COM bez registrace. Funguje tak, že automaticky vygeneruje manifest se standardními definicemi registrace modelu COM. Aby to však fungovalo správně, musí být komponenty modelu COM zaregistrované na počítači sestavení.
LauncherBasedDeployment Volitelný logický parametr.

Nastavte tuto možnost na True při sestavování pro .NET Core 3.1, .NET 5 a novější verze, aby se zajistilo, že spustitelný soubor aplikace bude přejmenován na očekávaný název spustitelného souboru po sestavení spustitelného souboru apphost.exe hostitele aplikace.
ManifestType Volitelný String parametr.

Určuje, jaký typ manifestu se má vygenerovat. Tento parametr může mít následující hodnoty:

- Native
- ClickOnce

Pokud tento parametr není zadán, je výchozí hodnota ClickOnceúkolu .
MaxTargetPath Volitelný String parametr.

Určuje maximální povolenou délku cesty k souboru v nasazení aplikace ClickOnce. Pokud je tato hodnota zadaná, délka každé cesty k souboru v aplikaci se kontroluje proti tomuto limitu. Všechny položky, které překročí limit, se zobrazí v upozornění sestavení. Pokud tento vstup není zadán nebo je nulový, neprovádí se žádná kontrola. Pokud úloha generuje nativní manifest, bude tento parametr ignorován.
OSVersion Volitelný String parametr.

Určuje minimální požadovanou verzi operačního systému (OS), kterou aplikace vyžaduje. Pokud tento parametr není zadaný, použije se hodnota 4.10.0.0, minimální podporovaný operační systém rozhraní .NET Framework. Pokud úloha generuje nativní manifest, tento vstup se ignoruje.
OutputManifest Volitelný ITaskItem výstupní parametr.

Určuje název vygenerovaného výstupního souboru manifestu. Pokud tento parametr není zadaný, název výstupního souboru se odvodí z identity vygenerovaného manifestu.
Platform Volitelný String parametr.

Určuje cílovou platformu aplikace. Tento parametr může mít následující hodnoty:

- AnyCPU
- x86
- x64
- Itanium

Pokud tento parametr není zadán, je výchozí hodnota AnyCPUúkolu .
Product Volitelný String parametr.

Určuje název aplikace. Pokud tento parametr není zadaný, název se odvodí z identity vygenerovaného manifestu. Tento název se používá pro název zástupce v nabídce Start a je součástí názvu, který se zobrazí v dialogovém okně Přidat nebo odebrat programy .
Publisher Volitelný String parametr.

Určuje vydavatele aplikace. Pokud tento parametr není zadaný, název se odvodí od registrovaného uživatele nebo identity vygenerovaného manifestu. Tento název se používá pro název složky v nabídce Start a je součástí názvu, který se zobrazí v dialogovém okně Přidat nebo odebrat programy .
RequiresMinimumFramework35SP1 Volitelný Boolean parametr.

Pokud ano, aplikace vyžaduje rozhraní .NET Framework 3.5 SP1 nebo novější verzi.
TargetCulture Volitelný String parametr.

Identifikuje jazykovou verzi aplikace a určuje Language pole identity sestavení pro vygenerovaný manifest. Pokud tento parametr není zadaný, předpokládá se, že aplikace je invariantní.
TargetFrameworkMoniker Volitelný String parametr.

Určuje moniker cílové architektury.
TargetFrameworkProfile Volitelný String parametr.

Určuje profil cílové architektury.
TargetFrameworkSubset Volitelný String parametr.

Určuje název podmnožině rozhraní .NET Framework, která se má cílit.
TargetFrameworkVersion Volitelný String parametr.

Určuje cílovou rozhraní .NET Framework projektu.
TrustInfoFile Volitelný ITaskItem parametr.

Označuje dokument XML, který určuje zabezpečení aplikace. Kořenový element v dokumentu XML musí být uzel trustInfo v oboru názvů asmv2. Pokud úloha generuje nativní manifest, bude tento parametr ignorován.
UseApplicationTrust Volitelný Boolean parametr.

Pokud je true , ProductPublishera SupportUrl vlastnosti jsou zapsány do manifestu aplikace.

Poznámky

Kromě výše uvedených parametrů tato úloha dědí parametry z GenerateManifestBase třídy, která sama dědí z Task třídy. Seznamparametrůch

Informace o použití GenerateDeploymentManifest úlohy naleznete v tématu GenerateApplicationManifest task.

Vstupy pro závislosti a soubory mohou být dále zdobeny metadaty položek, aby bylo možné určit další stav nasazení pro každou položku.

Metadata položek

Název metadat Popis
DependencyType Určuje, jestli je závislost publikovaná a nainstalovaná s aplikací nebo požadovaným předpokladem. Tato metadata jsou platná pro všechny závislosti, ale nepoužívá se pro soubory. Dostupné hodnoty pro tato metadata jsou:

- Install
- Prerequisite

Instalace je výchozí hodnota.
AssemblyType Určuje, zda je závislost spravovaná nebo nativní sestavení. Tato metadata jsou platná pro všechny závislosti, ale nepoužívá se pro soubory. Dostupné hodnoty pro tato metadata jsou:

- Managed
- Native
- Unspecified

Unspecified je výchozí hodnota, která indikuje, že generátor manifestu určí typ sestavení automaticky.
Group Označuje skupinu pro stahování dalších souborů na vyžádání. Název skupiny je definován aplikací a může to být libovolný řetězec. Prázdný řetězec označuje, že soubor není součástí skupiny stahování, což je výchozí hodnota. Soubory, které nejsou ve skupině, jsou součástí počátečního stažení aplikace. Soubory ve skupině se stáhnou pouze v případech, kdy aplikace explicitně požaduje .System.Deployment.Application

Tato metadata jsou platná pro všechny soubory, kde IsDataFile jsou false a všechny závislosti, kde DependencyType je Install.
TargetPath Určuje, jak má být cesta definována v vygenerovaném manifestu. Tento atribut je platný pro všechny soubory. Pokud tento atribut není zadán, použije se specifikace položky. Tento atribut je platný pro všechny soubory a závislosti s DependencyType hodnotou Install.
IsDataFile Boolean Hodnota metadat, která označuje, jestli je soubor datovým souborem nebo ne. Datový soubor je speciální v tom, že se migruje mezi aktualizacemi aplikací. Tato metadata jsou platná pouze pro soubory. False je výchozí hodnota.

Příklad 1

Tento příklad používá GenerateApplicationManifest úlohu k vygenerování manifestu aplikace ClickOnce a GenerateDeploymentManifest úlohy k vygenerování manifestu nasazení pro aplikaci s jedním sestavením. Pak pomocí SignFile úlohy podepíše manifesty.

To ilustruje nejjednodušší možný scénář generování manifestu, ve kterém jsou manifesty ClickOnce generovány pro jeden program. Výchozí název a identita se odvozují ze sestavení manifestu.

Poznámka:

V následujícím příkladu jsou všechny binární soubory aplikací předem připravené, aby se mohly zaměřit na aspekty generování manifestu. Tento příklad vytvoří plně funkční nasazení ClickOnce.

Poznámka:

Další informace o Thumbprint vlastnosti použité v SignFile úloze v tomto příkladu naleznete v tématu SignFile úloha.

<Project DefaultTargets="Build"
    xmlns="http://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>

Příklad 2

Tento příklad používá úlohy GenerateApplicationManifest k GenerateDeploymentManifest vygenerování manifestů aplikace a nasazení ClickOnce pro aplikaci s jedním sestavením a zadáním názvu a identity manifestů.

Tento příklad je podobný předchozímu příkladu s výjimkou názvu a identity manifestů, které jsou explicitně zadány. Tento příklad je také nakonfigurovaný jako online aplikace místo nainstalované aplikace.

Poznámka:

V následujícím příkladu jsou všechny binární soubory aplikací předem připravené, aby se mohly zaměřit na aspekty generování manifestu. Tento příklad vytvoří plně funkční nasazení ClickOnce.

Poznámka:

Další informace o Thumbprint vlastnosti použité v SignFile úloze v tomto příkladu naleznete v tématu SignFile úloha.

<Project DefaultTargets="Build"
    xmlns="http://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>

Příklad 3

V tomto příkladu se používají úlohy GenerateApplicationManifest a GenerateDeploymentManifest aplikace ClickOnce k vygenerování manifestů nasazení pro aplikaci s více soubory a sestaveními.

Poznámka:

V následujícím příkladu jsou všechny binární soubory aplikací předem připravené, aby se mohly zaměřit na aspekty generování manifestu. Tento příklad vytvoří plně funkční nasazení ClickOnce.

Poznámka:

Další informace o Thumbprint vlastnosti použité v SignFile úloze v tomto příkladu naleznete v tématu SignFile úloha.

<Project DefaultTargets="Build"
    xmlns="http://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>

Příklad 4

Tento příklad používá GenerateApplicationManifest úlohu k vygenerování nativní manifest pro aplikaci Test.exe odkazující na nativní komponentu Alpha.dll a izolovanou komponentu COM Bravo.dll.

Tento příklad vytvoří Test.exe.manifest, aby aplikace XCOPY nasaditelná a využila výhod Modelu COM pro registraci zdarma.

Poznámka:

V následujícím příkladu jsou všechny binární soubory aplikací předem připravené, aby se mohly zaměřit na aspekty generování manifestu. Tento příklad vytvoří plně funkční nasazení ClickOnce.

<Project DefaultTargets="Build" xmlns="http://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>

Viz také