Taal

"GenerateApplicationManifest"-taak

Hiermee wordt een ClickOnce-toepassingsmanifest of een systeemeigen manifest gegenereerd. Een systeemeigen manifest beschrijft een onderdeel door een unieke identiteit voor het onderdeel te definiëren en alle assembly's en bestanden te identificeren waaruit het onderdeel bestaat. Een ClickOnce-toepassingsmanifest breidt een systeemeigen manifest uit door het toegangspunt van de toepassing aan te geven en het beveiligingsniveau van de toepassing op te geven.

Parameters

In de volgende tabel worden de parameters voor de GenerateApplicationManifest taak beschreven.

Parameter Description
AssemblyName Optionele String parameter.

Hiermee geeft u het Name veld van de assembly-identiteit voor het gegenereerde manifest. Als deze parameter niet is opgegeven, wordt de naam afgeleid van de EntryPoint of InputManifest parameters. Als er geen naam kan worden gemaakt, genereert de taak een fout.
AssemblyVersion Optionele String parameter.

Hiermee geeft u het Version veld van de assembly-identiteit voor het gegenereerde manifest. Als deze parameter niet is opgegeven, wordt een standaardwaarde 1.0.0.0 gebruikt.
ClrVersion Optionele String parameter.

Hiermee geeft u de minimale versie van de Common Language Runtime (CLR) vereist voor de toepassing. De standaardwaarde is de CLR-versie die wordt gebruikt door het buildsysteem. Als de taak een systeemeigen manifest genereert, wordt deze parameter genegeerd.
ConfigFile Optionele ITaskItem[] parameter.

Hiermee geeft u op welk item het toepassingsconfiguratiebestand bevat. Als de taak een systeemeigen manifest genereert, wordt deze parameter genegeerd.
Dependencies Optionele ITaskItem[] parameter.

Hiermee geeft u een itemlijst op waarmee de set afhankelijke assembly's voor het gegenereerde manifest wordt gedefinieerd. Elk item kan verder worden beschreven door itemmetagegevens om extra implementatiestatus en het type afhankelijkheid aan te geven. Zie Metagegevens van items voor meer informatie.
Description Optionele String parameter.

Hiermee geeft u de beschrijving voor de toepassing of het onderdeel.
EntryPoint Optionele ITaskItem[] parameter.

Hiermee geeft u één item op dat het toegangspunt voor de gegenereerde manifestassembly aangeeft.

Voor een ClickOnce-toepassingsmanifest geeft deze parameter de assembly op die wordt gestart wanneer de toepassing wordt uitgevoerd.
ErrorReportUrl Optionele System.String parameter.

Hiermee geeft u de URL op van de webpagina die wordt weergegeven in dialoogvensters tijdens foutrapporten in ClickOnce-installaties.
FileAssociations Optionele ITaskItem[] parameter.

Hiermee geeft u een lijst op van een of meer bestandstypen die zijn gekoppeld aan het ClickOnce-implementatiemanifest.

Bestandskoppelingen zijn alleen geldig wanneer .NET Framework 3.5 of hoger is gericht.
Files Optionele ITaskItem[] parameter.

De bestanden die moeten worden opgenomen in het manifest. Geef het volledige pad voor elk bestand op.
HostInBrowser Optionele Boolean parameter.

Als true, de toepassing wordt gehost in een browser (zoals zijn WPF webbrowsertoepassingen).
IconFile Optionele ITaskItem[] parameter.

Geeft het pictogrambestand van de toepassing aan. Het toepassingspictogram wordt uitgedrukt in het gegenereerde toepassingsmanifest en wordt gebruikt voor het startmenu en het dialoogvenster Programma's toevoegen/verwijderen . Als deze invoer niet is opgegeven, wordt er een standaardpictogram gebruikt. Als de taak een systeemeigen manifest genereert, wordt deze parameter genegeerd.
InputManifest Optionele ITaskItem parameter.

Geeft een XML-invoerdocument aan dat moet fungeren als basis voor de manifestgenerator. Hierdoor kunnen gestructureerde gegevens, zoals toepassingsbeveiliging of aangepaste manifestdefinities, worden weergegeven in het uitvoermanifest. Het hoofdelement in het XML-document moet een assemblyknooppunt in de asmv1-naamruimte zijn.
IsolatedComReferences Optionele ITaskItem[] parameter.

Hiermee geeft u COM-onderdelen op die moeten worden geïsoleerd in het gegenereerde manifest. Deze parameter ondersteunt de mogelijkheid om COM-onderdelen te isoleren voor de implementatie van 'Gratis COM-registratie'. Het werkt door automatisch een manifest te genereren met standaard COM-registratiedefinities. De COM-onderdelen moeten echter op de buildcomputer worden geregistreerd om deze correct te laten functioneren.
LauncherBasedDeployment Optionele Booleaanse parameter.

Stel dit in op True wanneer u bouwt voor .NET Core 3.1, .NET 5 en latere versies om ervoor te zorgen dat het uitvoerbare bestand van de toepassing wordt gewijzigd in de verwachte naam van het uitvoerbare bestand na het bouwen van het uitvoerbare bestand van de toepassingshostapphost.exe.
ManifestType Optionele String parameter.

Hiermee geeft u op welk type manifest moet worden gegenereerd. Deze parameter kan de volgende waarden hebben:

- Native
- ClickOnce

Als deze parameter niet is opgegeven, wordt de taak standaard ingesteld op ClickOnce.
MaxTargetPath Optionele String parameter.

Hiermee geeft u de maximaal toegestane lengte van een bestandspad in een ClickOnce-toepassingsimplementatie. Als deze waarde is opgegeven, wordt de lengte van elk bestandspad in de toepassing gecontroleerd op basis van deze limiet. Alle items die de limiet overschrijden, worden weergegeven in een buildwaarschuwing. Als deze invoer niet is opgegeven of nul is, wordt er geen controle uitgevoerd. Als de taak een systeemeigen manifest genereert, wordt deze parameter genegeerd.
OSVersion Optionele String parameter.

Hiermee geeft u de minimaal vereiste besturingssysteemversie (OS) op die door de toepassing is vereist. Als deze parameter niet is opgegeven, wordt de waarde 4.10.0.0 gebruikt, het minimaal ondersteunde besturingssysteem van het .NET Framework. Als de taak een systeemeigen manifest genereert, wordt deze invoer genegeerd.
OutputManifest Optionele ITaskItem uitvoerparameter.

Hiermee geeft u de naam van het gegenereerde uitvoermanifestbestand. Als deze parameter niet is opgegeven, wordt de naam van het uitvoerbestand afgeleid van de identiteit van het gegenereerde manifest.
Platform Optionele String parameter.

Hiermee geeft u het doelplatform van de toepassing. Deze parameter kan de volgende waarden hebben:

- AnyCPU
- x86
- x64
- Itanium

Als deze parameter niet is opgegeven, wordt de taak standaard ingesteld op AnyCPU.
Product Optionele String parameter.

Hiermee geeft u de naam van de toepassing. Als deze parameter niet is opgegeven, wordt de naam afgeleid van de identiteit van het gegenereerde manifest. Deze naam wordt gebruikt voor de snelkoppelingsnaam in het menu Start en maakt deel uit van de naam die wordt weergegeven in het dialoogvenster Programma's toevoegen of verwijderen .
Publisher Optionele String parameter.

Hiermee geeft u de uitgever van de toepassing. Als deze parameter niet is opgegeven, wordt de naam afgeleid van de geregistreerde gebruiker of de identiteit van het gegenereerde manifest. Deze naam wordt gebruikt voor de mapnaam in het menu Start en maakt deel uit van de naam die wordt weergegeven in het dialoogvenster Programma's toevoegen of verwijderen .
RequiresMinimumFramework35SP1 Optionele Boolean parameter.

Indien waar, vereist de toepassing de .NET Framework 3.5 SP1 of een recentere versie.
TargetCulture Optionele String parameter.

Identificeert de cultuur van de toepassing en geeft het Language veld van de assembly-identiteit voor het gegenereerde manifest op. Als deze parameter niet is opgegeven, wordt ervan uitgegaan dat de toepassing invariant cultuur is.
TargetFrameworkMoniker Optionele String parameter.

Hiermee geeft u de doelframework moniker.
TargetFrameworkProfile Optionele String parameter.

Hiermee geeft u het doelframeworkprofiel op.
TargetFrameworkSubset Optionele String parameter.

Hiermee geeft u de naam van de .NET Framework-subset op doel.
TargetFrameworkVersion Optionele String parameter.

Hiermee geeft u het doel .NET Framework van het project.
TrustInfoFile Optionele ITaskItem parameter.

Hiermee wordt een XML-document aangegeven dat de beveiliging van de toepassing aangeeft. Het hoofdelement in het XML-document moet een trustInfo-knooppunt in de asmv2-naamruimte zijn. Als de taak een systeemeigen manifest genereert, wordt deze parameter genegeerd.
UseApplicationTrust Optionele Boolean parameter.

Indien waar, worden de Product, Publisheren SupportUrl eigenschappen naar het toepassingsmanifest geschreven.

Remarks

Naast de bovenstaande parameters neemt deze taak parameters over van de GenerateManifestBase klasse, die zelf van de Task klasse overgaat. Zie Taakbasisklasse voor een lijst met de parameters van de taakklasse.

Zie GenerateApplicationManifest-taak voor meer informatie over het gebruik van de GenerateDeploymentManifest taak.

De invoer voor afhankelijkheden en bestanden kan verder worden ingericht met metagegevens van items om extra implementatiestatus voor elk item op te geven.

Metagegevens van items

Naam van metagegevens Description
DependencyType Geeft aan of de afhankelijkheid is gepubliceerd en geïnstalleerd met de toepassing of een vereiste. Deze metagegevens zijn geldig voor alle afhankelijkheden, maar worden niet gebruikt voor bestanden. De beschikbare waarden voor deze metagegevens zijn:

- Install
- Prerequisite

Installeren is de standaardwaarde.
AssemblyType Geeft aan of de afhankelijkheid een beheerde of een systeemeigen assembly is. Deze metagegevens zijn geldig voor alle afhankelijkheden, maar worden niet gebruikt voor bestanden. De beschikbare waarden voor deze metagegevens zijn:

- Managed
- Native
- Unspecified

Unspecified is de standaardwaarde, die aangeeft dat de manifestgenerator het assemblytype automatisch bepaalt.
Group Geeft de groep aan voor het downloaden van extra bestanden op aanvraag. De groepsnaam wordt gedefinieerd door de toepassing en kan elke tekenreeks zijn. Een lege tekenreeks geeft aan dat het bestand geen deel uitmaakt van een downloadgroep. Dit is de standaardinstelling. Bestanden die zich niet in een groep bevinden, maken deel uit van de eerste download van de toepassing. Bestanden in een groep worden alleen gedownload wanneer deze expliciet worden aangevraagd door de toepassing met behulp van <xref:System.Deployment.Application>.

Deze metagegevens zijn geldig voor alle bestanden waar IsDataFile zich false bevinden en alle afhankelijkheden waar DependencyType zich bevinden Install.
TargetPath Hiermee geeft u op hoe het pad moet worden gedefinieerd in het gegenereerde manifest. Dit kenmerk is geldig voor alle bestanden. Als dit kenmerk niet is opgegeven, wordt de itemspecificatie gebruikt. Dit kenmerk is geldig voor alle bestanden en afhankelijkheden met een DependencyType waarde van Install.
IsDataFile Een Boolean metagegevenswaarde die aangeeft of het bestand een gegevensbestand is. Een gegevensbestand is speciaal omdat het wordt gemigreerd tussen toepassingsupdates. Deze metagegevens zijn alleen geldig voor bestanden. False is de standaardwaarde.

Voorbeeld 1

In dit voorbeeld wordt de GenerateApplicationManifest taak gebruikt om een ClickOnce-toepassingsmanifest en de GenerateDeploymentManifest taak te genereren voor het genereren van een implementatiemanifest voor een toepassing met één assembly. Vervolgens wordt de SignFile taak gebruikt om de manifesten te ondertekenen.

Dit illustreert het eenvoudigste scenario voor het genereren van manifesten waarbij ClickOnce-manifesten worden gegenereerd voor één programma. Een standaardnaam en identiteit worden afgeleid uit de assembly voor het manifest.

Opmerking

In het onderstaande voorbeeld zijn alle binaire toepassingsbestanden vooraf gebouwd om zich te richten op aspecten van het genereren van manifesten. In dit voorbeeld wordt een volledig werkende ClickOnce-implementatie geproduceerd.

Opmerking

Zie SignFile-taak voor meer informatie over de Thumbprint eigenschap die wordt gebruikt in de SignFile taak in dit voorbeeld.

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

Voorbeeld 2

In dit voorbeeld worden de GenerateApplicationManifest en GenerateDeploymentManifest taken gebruikt om ClickOnce-toepassings- en implementatiemanifesten te genereren voor een toepassing met één assembly, waarbij de naam en identiteit van manifesten worden opgegeven.

Dit voorbeeld is vergelijkbaar met het vorige voorbeeld, behalve dat de naam en identiteit van de manifesten expliciet zijn opgegeven. Dit voorbeeld is ook geconfigureerd als een onlinetoepassing in plaats van een geïnstalleerde toepassing.

Opmerking

In het onderstaande voorbeeld zijn alle binaire toepassingsbestanden vooraf gebouwd om zich te richten op aspecten van het genereren van manifesten. In dit voorbeeld wordt een volledig werkende ClickOnce-implementatie geproduceerd.

Opmerking

Zie SignFile-taak voor meer informatie over de Thumbprint eigenschap die wordt gebruikt in de SignFile taak in dit voorbeeld.

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

Voorbeeld 3

In dit voorbeeld worden de GenerateApplicationManifest en GenerateDeploymentManifest taken gebruikt om ClickOnce-toepassings- en implementatiemanifesten te genereren voor een toepassing met meerdere bestanden en assembly's.

Opmerking

In het onderstaande voorbeeld zijn alle binaire toepassingsbestanden vooraf gebouwd om zich te richten op aspecten van het genereren van manifesten. In dit voorbeeld wordt een volledig werkende ClickOnce-implementatie geproduceerd.

Opmerking

Zie SignFile-taak voor meer informatie over de Thumbprint eigenschap die wordt gebruikt in de SignFile taak in dit voorbeeld.

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

Voorbeeld 4

In dit voorbeeld wordt de GenerateApplicationManifest taak gebruikt om een systeemeigen manifest te genereren voor toepassings-Test.exe, waarnaar wordt verwezen naar systeemeigen Alpha.dllen een geïsoleerd COM-onderdeel Bravo.dll.

In dit voorbeeld wordt het Test.exe.manifest geproduceerd, waardoor de toepassing XCOPY kan worden geïmplementeerd en gebruik wordt gemaakt van gratis COM voor registratie.

Opmerking

In het onderstaande voorbeeld zijn alle binaire toepassingsbestanden vooraf gebouwd om zich te richten op aspecten van het genereren van manifesten. In dit voorbeeld wordt een volledig werkende ClickOnce-implementatie geproduceerd.

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

Zie ook