Språk

GenerateApplicationManifest-uppgift

Genererar ett ClickOnce-programmanifest eller ett inbyggt manifest. Ett inbyggt manifest beskriver en komponent genom att definiera en unik identitet för komponenten och identifiera alla sammansättningar och filer som utgör komponenten. Ett ClickOnce-programmanifest utökar ett inbyggt manifest genom att ange programmets startpunkt och ange programsäkerhetsnivån.

Parameters

I följande tabell beskrivs parametrarna GenerateApplicationManifest för uppgiften.

Parameter Description
AssemblyName Valfri String parameter.

Anger fältet för Name sammansättningsidentiteten för det genererade manifestet. Om den här parametern inte anges härleds namnet från parametrarna EntryPoint eller InputManifest . Om inget namn kan skapas utlöser uppgiften ett fel.
AssemblyVersion Valfri String parameter.

Anger fältet för Version sammansättningsidentiteten för det genererade manifestet. Om den här parametern inte anges används standardvärdet "1.0.0.0".
ClrVersion Valfri String parameter.

Anger den lägsta versionen av COMMON Language Runtime (CLR) som krävs av programmet. Standardvärdet är den CLR-version som används av byggsystemet. Om uppgiften genererar ett inbyggt manifest ignoreras den här parametern.
ConfigFile Valfri ITaskItem[] parameter.

Anger vilket objekt som innehåller programkonfigurationsfilen. Om uppgiften genererar ett inbyggt manifest ignoreras den här parametern.
Dependencies Valfri ITaskItem[] parameter.

Anger en objektlista som definierar uppsättningen beroende sammansättningar för det genererade manifestet. Varje objekt kan beskrivas ytterligare av objektmetadata för att ange ytterligare distributionstillstånd och typ av beroende. Mer information finns i Objektmetadata.
Description Valfri String parameter.

Anger beskrivningen för programmet eller komponenten.
EntryPoint Valfri ITaskItem[] parameter.

Anger ett enskilt objekt som anger startpunkten för den genererade manifestsammansättningen.

För ett ClickOnce-programmanifest anger den här parametern den sammansättning som startar när programmet körs.
ErrorReportUrl Valfri System.String parameter.

Anger URL:en för webbsidan som visas i dialogrutor under felrapporter i ClickOnce-installationer.
FileAssociations Valfri ITaskItem[] parameter.

Anger en lista över en eller flera filtyper som är associerade med ClickOnce-distributionsmanifestet.

Filassociationer är endast giltiga när .NET Framework 3.5 eller senare är mål.
Files Valfri ITaskItem[] parameter.

Filerna som ska inkluderas i manifestet. Ange den fullständiga sökvägen för varje fil.
HostInBrowser Valfri Boolean parameter.

Om truefinns programmet i en webbläsare (liksom WPF webbläsarprogram).
IconFile Valfri ITaskItem[] parameter.

Anger programikonfilen. Programikonen uttrycks i det genererade programmanifestet och används för dialogrutan Start-menyn och Lägg till/ta bort program . Om den här indatan inte har angetts används en standardikon. Om uppgiften genererar ett inbyggt manifest ignoreras den här parametern.
InputManifest Valfri ITaskItem parameter.

Anger ett XML-indatadokument som ska fungera som bas för manifestgeneratorn. På så sätt kan strukturerade data som programsäkerhet eller anpassade manifestdefinitioner återspeglas i utdatamanifestet. Rotelementet i XML-dokumentet måste vara en sammansättningsnod i asmv1-namnområdet.
IsolatedComReferences Valfri ITaskItem[] parameter.

Anger COM-komponenter som ska isoleras i det genererade manifestet. Den här parametern stöder möjligheten att isolera COM-komponenter för distributionen "Registreringsfri COM". Det fungerar genom att automatiskt generera ett manifest med standarddefinitioner för COM-registrering. COM-komponenterna måste dock registreras på byggdatorn för att detta ska fungera korrekt.
LauncherBasedDeployment Valfri boolesk parameter.

Ange detta till True när du skapar för .NET Core 3.1, .NET 5 och senare versioner för att säkerställa att programmets körbara namn byts om till det förväntade körbara namnet efter att programvärdens körbara apphost.exe.
ManifestType Valfri String parameter.

Anger vilken typ av manifest som ska genereras. Den här parametern kan ha följande värden:

- Native
- ClickOnce

Om den här parametern inte har angetts ClickOnceär aktiviteten som standard .
MaxTargetPath Valfri String parameter.

Anger den maximala tillåtna längden på en filsökväg i en ClickOnce-programdistribution. Om det här värdet anges kontrolleras längden på varje filsökväg i programmet mot den här gränsen. Objekt som överskrider gränsen höjs i en byggvarning. Om den här indatan inte har angetts eller är noll utförs ingen kontroll. Om uppgiften genererar ett inbyggt manifest ignoreras den här parametern.
OSVersion Valfri String parameter.

Anger den lägsta version av operativsystemet som krävs av programmet. Om den här parametern inte anges används värdet "4.10.0.0", det lägsta operativsystem som stöds för .NET Framework. Om uppgiften genererar ett inbyggt manifest ignoreras dessa indata.
OutputManifest Valfri utdataparameter ITaskItem .

Anger namnet på den genererade utdatamanifestfilen. Om den här parametern inte anges härleds namnet på utdatafilen från identiteten för det genererade manifestet.
Platform Valfri String parameter.

Anger programmets målplattform. Den här parametern kan ha följande värden:

- AnyCPU
- x86
- x64
- Itanium

Om den här parametern inte har angetts AnyCPUär aktiviteten som standard .
Product Valfri String parameter.

Anger namnet på programmet. Om den här parametern inte anges härleds namnet från identiteten för det genererade manifestet. Det här namnet används för genvägsnamnet på Start-menyn och är en del av namnet som visas i dialogrutan Lägg till eller ta bort program .
Publisher Valfri String parameter.

Anger programmets utgivare. Om den här parametern inte anges härleds namnet från den registrerade användaren eller identiteten för det genererade manifestet. Det här namnet används för mappnamnet på Start-menyn och är en del av namnet som visas i dialogrutan Lägg till eller ta bort program .
RequiresMinimumFramework35SP1 Valfri Boolean parameter.

Om sant kräver programmet .NET Framework 3.5 SP1 eller en senare version.
TargetCulture Valfri String parameter.

Identifierar programmets kultur och anger fältet för sammansättningsidentiteten Language för det genererade manifestet. Om den här parametern inte anges antas det att programmet är kulturvariant.
TargetFrameworkMoniker Valfri String parameter.

Anger målramverkets moniker.
TargetFrameworkProfile Valfri String parameter.

Anger målramverksprofilen.
TargetFrameworkSubset Valfri String parameter.

Anger namnet på delmängden .NET Framework som ska vara målet.
TargetFrameworkVersion Valfri String parameter.

Anger målet .NET Framework för projektet.
TrustInfoFile Valfri ITaskItem parameter.

Anger ett XML-dokument som anger programsäkerheten. Rotelementet i XML-dokumentet måste vara en trustInfo-nod i asmv2-namnområdet. Om uppgiften genererar ett inbyggt manifest ignoreras den här parametern.
UseApplicationTrust Valfri Boolean parameter.

Om sant skrivs Productegenskaperna , Publisheroch till SupportUrl programmanifestet.

Remarks

Förutom de parametrar som anges ovan ärver den här aktiviteten parametrar från GenerateManifestBase klassen, som i sig ärver från Task klassen. En lista över parametrarna för klassen Aktivitet finns i Basklass för aktivitet.

Information om hur du använder uppgiften finns i GenerateDeploymentManifestGenereraApplicationManifest-uppgift.

Indata för beroenden och filer kan dekoreras ytterligare med objektmetadata för att ange ytterligare distributionstillstånd för varje objekt.

Objektmetadata

Metadatanamn Description
DependencyType Anger om beroendet publiceras och installeras med programmet eller en förutsättning. Dessa metadata är giltiga för alla beroenden, men används inte för filer. Tillgängliga värden för dessa metadata är:

- Install
- Prerequisite

Installation är standardvärdet.
AssemblyType Anger om beroendet är en hanterad eller en intern sammansättning. Dessa metadata är giltiga för alla beroenden, men används inte för filer. Tillgängliga värden för dessa metadata är:

- Managed
- Native
- Unspecified

Unspecified är standardvärdet, vilket anger att manifestgeneratorn bestämmer sammansättningstypen automatiskt.
Group Anger gruppen för att ladda ned ytterligare filer på begäran. Gruppnamnet definieras av programmet och kan vara valfri sträng. En tom sträng anger att filen inte ingår i en nedladdningsgrupp, vilket är standardvärdet. Filer som inte finns i en grupp ingår i den första programnedladdningen. Filer i en grupp laddas bara ned när programmet uttryckligen begär det med hjälp av System.Deployment.Application.

Dessa metadata är giltiga för alla filer där IsDataFile är false och alla beroenden där DependencyType är Install.
TargetPath Anger hur sökvägen ska definieras i det genererade manifestet. Det här attributet är giltigt för alla filer. Om det här attributet inte anges används objektspecifikationen. Det här attributet är giltigt för alla filer och beroenden med värdet DependencyTypeInstall.
IsDataFile Ett Boolean metadatavärde som anger om filen är en datafil eller inte. En datafil är speciell eftersom den migreras mellan programuppdateringar. Dessa metadata är endast giltiga för filer. False är standardvärdet.

Exempel 1

I det här exemplet används uppgiften GenerateApplicationManifest för att generera ett ClickOnce-programmanifest och GenerateDeploymentManifest uppgiften för att generera ett distributionsmanifest för ett program med en enda sammansättning. Den använder SignFile sedan uppgiften för att signera manifesten.

Detta illustrerar det enklaste möjliga manifestgenereringsscenariot där ClickOnce-manifest genereras för ett enda program. Ett standardnamn och en standardidentitet härleds från sammansättningen för manifestet.

Note

I exemplet nedan är alla programbinärfiler fördefinierade för att fokusera på manifestgenereringsaspekter. I det här exemplet skapas en fullständigt fungerande ClickOnce-distribution.

Note

Mer information om egenskapen Thumbprint som används i SignFile uppgiften i det här exemplet finns i SignFile-uppgift.

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

Exempel 2

I det GenerateApplicationManifest här exemplet används uppgifterna och GenerateDeploymentManifest för att generera ClickOnce-program- och distributionsmanifest för ett program med en enda sammansättning, som anger namn och identitet för manifest.

Det här exemplet liknar föregående exempel, förutom att manifestens namn och identitet uttryckligen anges. Det här exemplet är också konfigurerat som ett onlineprogram i stället för ett installerat program.

Note

I exemplet nedan är alla programbinärfiler fördefinierade för att fokusera på manifestgenereringsaspekter. I det här exemplet skapas en fullständigt fungerande ClickOnce-distribution.

Note

Mer information om egenskapen Thumbprint som används i SignFile uppgiften i det här exemplet finns i SignFile-uppgift.

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

Exempel 3

I det GenerateApplicationManifest här exemplet används uppgifterna och GenerateDeploymentManifest för att generera ClickOnce-program- och distributionsmanifest för ett program med flera filer och sammansättningar.

Note

I exemplet nedan är alla programbinärfiler fördefinierade för att fokusera på manifestgenereringsaspekter. I det här exemplet skapas en fullständigt fungerande ClickOnce-distribution.

Note

Mer information om egenskapen Thumbprint som används i SignFile uppgiften i det här exemplet finns i SignFile-uppgift.

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

Exempel 4

I det här exemplet används uppgiften GenerateApplicationManifest för att generera ett internt manifest för program Test.exe, som refererar till den inbyggda komponenten Alpha.dll och en isolerad COM-komponent Bravo.dll.

I det här exemplet skapas Test.exe.manifest, vilket gör att programmet XCOPY kan distribueras och dra nytta av registreringsfri COM.

Note

I exemplet nedan är alla programbinärfiler fördefinierade för att fokusera på manifestgenereringsaspekter. I det här exemplet skapas en fullständigt fungerande ClickOnce-distribution.

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

Se även