Sprache

GenerateApplicationManifest-Aufgabe

Generiert ein ClickOnce-Anwendungsmanifest oder ein systemeigenes Manifest. Ein systemeigenes Manifest beschreibt eine Komponente, indem eine eindeutige Identität für die Komponente definiert und alle Assemblys und Dateien identifiziert werden, aus denen die Komponente besteht. Ein ClickOnce-Anwendungsmanifest erweitert ein systemeigenes Manifest, indem der Einstiegspunkt der Anwendung angegeben und die Anwendungssicherheitsstufe angegeben wird.

Parameter

In der folgenden Tabelle werden die Parameter für den GenerateApplicationManifest Vorgang beschrieben.

Parameter Description
AssemblyName Optionaler String Parameter.

Gibt das Name Feld der Assemblyidentität für das generierte Manifest an. Wenn dieser Parameter nicht angegeben ist, wird der Name von den EntryPoint Parametern abgeleitet InputManifest . Wenn kein Name erstellt werden kann, löst die Aufgabe einen Fehler aus.
AssemblyVersion Optionaler String Parameter.

Gibt das Version Feld der Assemblyidentität für das generierte Manifest an. Wenn dieser Parameter nicht angegeben ist, wird ein Standardwert von "1.0.0.0.0" verwendet.
ClrVersion Optionaler String Parameter.

Gibt die Mindestversion der common Language Runtime (CLR) an, die von der Anwendung benötigt wird. Der Standardwert ist die CLR-Version, die vom Buildsystem verwendet wird. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird dieser Parameter ignoriert.
ConfigFile Optionaler ITaskItem[] Parameter.

Gibt an, welches Element die Anwendungskonfigurationsdatei enthält. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird dieser Parameter ignoriert.
Dependencies Optionaler ITaskItem[] Parameter.

Gibt eine Elementliste an, die den Satz abhängiger Assemblys für das generierte Manifest definiert. Jedes Element kann durch Elementmetadaten weiter beschrieben werden, um zusätzlichen Bereitstellungsstatus und den Typ der Abhängigkeit anzugeben. Weitere Informationen finden Sie unter Elementmetadaten.
Description Optionaler String Parameter.

Gibt die Beschreibung für die Anwendung oder Komponente an.
EntryPoint Optionaler ITaskItem[] Parameter.

Gibt ein einzelnes Element an, das den Einstiegspunkt für die generierte Manifestassembly angibt.

Für ein ClickOnce-Anwendungsmanifest gibt dieser Parameter die Assembly an, die gestartet wird, wenn die Anwendung ausgeführt wird.
ErrorReportUrl Optionaler System.String Parameter.

Gibt die URL der Webseite an, die in Dialogfeldern während Fehlerberichten in ClickOnce-Installationen angezeigt wird.
FileAssociations Optionaler ITaskItem[] Parameter.

Gibt eine Liste eines oder mehrerer Dateitypen an, die dem ClickOnce-Bereitstellungsmanifest zugeordnet sind.

Dateizuordnungen sind nur gültig, wenn .NET Framework 3.5 oder höher gezielt ist.
Files Optionaler ITaskItem[] Parameter.

Die Dateien, die in das Manifest eingeschlossen werden sollen. Geben Sie den vollständigen Pfad für jede Datei an.
HostInBrowser Optionaler Boolean Parameter.

Wenn truedie Anwendung in einem Browser gehostet wird (wie WPF Webbrowseranwendungen).
IconFile Optionaler ITaskItem[] Parameter.

Gibt die Anwendungssymboldatei an. Das Anwendungssymbol wird im generierten Anwendungsmanifest ausgedrückt und wird für das Dialogfeld "Startmenü " und " Programme hinzufügen/entfernen " verwendet. Wenn diese Eingabe nicht angegeben ist, wird ein Standardsymbol verwendet. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird dieser Parameter ignoriert.
InputManifest Optionaler ITaskItem Parameter.

Gibt ein EINGABE-XML-Dokument an, das als Basis für den Manifestgenerator dient. Dadurch können strukturierte Daten wie Anwendungssicherheit oder benutzerdefinierte Manifestdefinitionen im Ausgabemanifest widergespiegelt werden. Das Stammelement im XML-Dokument muss ein Assemblyknoten im asmv1-Namespace sein.
IsolatedComReferences Optionaler ITaskItem[] Parameter.

Gibt COM-Komponenten an, die im generierten Manifest isoliert werden sollen. Dieser Parameter unterstützt die Möglichkeit, COM-Komponenten für die Bereitstellung "Registration Free COM" zu isolieren. Es funktioniert durch automatisches Generieren eines Manifests mit standardmäßigen COM-Registrierungsdefinitionen. Die COM-Komponenten müssen jedoch auf dem Buildcomputer registriert werden, damit dies ordnungsgemäß funktioniert.
LauncherBasedDeployment Optionaler boolescher Parameter.

Legen Sie dies True beim Erstellen für .NET Core 3.1 .NET 5 und höher fest, um sicherzustellen, dass die ausführbare Anwendung nach dem Erstellen der ausführbaren Datei des Anwendungshosts in den erwarteten ausführbaren Namen umbenannt wird ,apphost.exe.
ManifestType Optionaler String Parameter.

Gibt an, welcher Manifesttyp generiert werden soll. Dieser Parameter kann die folgenden Werte annehmen:

- Native
- ClickOnce

Wenn dieser Parameter nicht angegeben ist, wird der Vorgang standardmäßig auf ClickOnce.
MaxTargetPath Optionaler String Parameter.

Gibt die maximale zulässige Länge eines Dateipfads in einer ClickOnce-Anwendungsbereitstellung an. Wenn dieser Wert angegeben ist, wird die Länge der einzelnen Dateipfade in der Anwendung anhand dieses Grenzwerts überprüft. Alle Elemente, die den Grenzwert überschreiten, werden in einer Buildwarnung angezeigt. Wenn diese Eingabe nicht angegeben ist oder null ist, wird keine Überprüfung durchgeführt. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird dieser Parameter ignoriert.
OSVersion Optionaler String Parameter.

Gibt die mindestens erforderliche Betriebssystemversion (OS) an, die von der Anwendung benötigt wird. Wenn dieser Parameter nicht angegeben ist, wird der Wert "4.10.0.0" verwendet, das mindestens unterstützte Betriebssystem des .NET Frameworks. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird diese Eingabe ignoriert.
OutputManifest Optionaler ITaskItem Ausgabeparameter.

Gibt den Namen der generierten Ausgabemanifestdatei an. Wenn dieser Parameter nicht angegeben ist, wird der Name der Ausgabedatei von der Identität des generierten Manifests abgeleitet.
Platform Optionaler String Parameter.

Gibt die Zielplattform der Anwendung an. Dieser Parameter kann die folgenden Werte annehmen:

- AnyCPU
- x86
- x64
- Itanium

Wenn dieser Parameter nicht angegeben ist, wird der Vorgang standardmäßig auf AnyCPU.
Product Optionaler String Parameter.

Gibt den Namen der Anwendung an. Wenn dieser Parameter nicht angegeben ist, wird der Name von der Identität des generierten Manifests abgeleitet. Dieser Name wird für den Verknüpfungsnamen im Startmenü verwendet und ist Teil des Namens, der im Dialogfeld " Programme hinzufügen" oder "Programme entfernen " angezeigt wird.
Publisher Optionaler String Parameter.

Gibt den Herausgeber der Anwendung an. Wenn dieser Parameter nicht angegeben ist, wird der Name vom registrierten Benutzer oder der Identität des generierten Manifests abgeleitet. Dieser Name wird für den Ordnernamen im Startmenü verwendet und ist Teil des Namens, der im Dialogfeld " Programme hinzufügen" oder "Programme entfernen " angezeigt wird.
RequiresMinimumFramework35SP1 Optionaler Boolean Parameter.

Wenn true, erfordert die Anwendung das .NET Framework 3.5 SP1 oder eine neuere Version.
TargetCulture Optionaler String Parameter.

Identifiziert die Kultur der Anwendung und gibt das Language Feld der Assemblyidentität für das generierte Manifest an. Wenn dieser Parameter nicht angegeben ist, wird angenommen, dass die Anwendung kulturinvariant ist.
TargetFrameworkMoniker Optionaler String Parameter.

Gibt den Zielframework-Moniker an.
TargetFrameworkProfile Optionaler String Parameter.

Gibt das Zielframeworkprofil an.
TargetFrameworkSubset Optionaler String Parameter.

Gibt den Namen der .NET Framework-Teilmenge an, die als Ziel verwendet werden soll.
TargetFrameworkVersion Optionaler String Parameter.

Gibt das Ziel .NET Framework des Projekts an.
TrustInfoFile Optionaler ITaskItem Parameter.

Gibt ein XML-Dokument an, das die Anwendungssicherheit angibt. Das Stammelement im XML-Dokument muss ein TrustInfo-Knoten im asmv2-Namespace sein. Wenn die Aufgabe ein systemeigenes Manifest generiert, wird dieser Parameter ignoriert.
UseApplicationTrust Optionaler Boolean Parameter.

Wenn true, werden die ProductEigenschaften Publisherund SupportUrl Eigenschaften in das Anwendungsmanifest geschrieben.

Hinweise

Zusätzlich zu den oben aufgeführten Parametern erbt diese Aufgabe Parameter von der GenerateManifestBase Klasse, die selbst von der Task Klasse erbt. Eine Liste der Parameter der Task-Klasse finden Sie unter Task-Basisklasse.

Informationen zur Verwendung der Aufgabe finden Sie unter "GenerateApplicationManifest".For information about how to use the GenerateDeploymentManifest task, see GenerateApplicationManifest task.

Die Eingaben für Abhängigkeiten und Dateien können mit Elementmetadaten versehen werden, um zusätzlichen Bereitstellungsstatus für jedes Element anzugeben.

Elementmetadaten

Metadatenname Description
DependencyType Gibt an, ob die Abhängigkeit veröffentlicht und mit der Anwendung oder einer Voraussetzung installiert wird. Diese Metadaten sind für alle Abhängigkeiten gültig, werden jedoch nicht für Dateien verwendet. Die verfügbaren Werte für diese Metadaten sind:

- Install
- Prerequisite

Die Installation ist der Standardwert.
AssemblyType Gibt an, ob es sich bei der Abhängigkeit um eine verwaltete oder eine systemeigene Assembly handelt. Diese Metadaten sind für alle Abhängigkeiten gültig, werden jedoch nicht für Dateien verwendet. Die verfügbaren Werte für diese Metadaten sind:

- Managed
- Native
- Unspecified

Unspecified ist der Standardwert, der angibt, dass der Manifestgenerator den Assemblytyp automatisch bestimmt.
Group Gibt die Gruppe zum Herunterladen zusätzlicher Dateien bei Bedarf an. Der Gruppenname wird von der Anwendung definiert und kann eine beliebige Zeichenfolge sein. Eine leere Zeichenfolge gibt an, dass die Datei nicht Teil einer Downloadgruppe ist. Dies ist die Standardeinstellung. Dateien, die sich nicht in einer Gruppe befinden, sind Teil des anfänglichen Anwendungsdownloads. Dateien in einer Gruppe werden nur heruntergeladen, wenn sie von der Anwendung explizit angefordert werden.<xref:System.Deployment.Application>

Diese Metadaten sind für alle Dateien gültig, in denen IsDataFilefalseDependencyTypeInstallsich alle Abhängigkeiten befinden.
TargetPath Gibt an, wie der Pfad im generierten Manifest definiert werden soll. Dieses Attribut ist für alle Dateien gültig. Wenn dieses Attribut nicht angegeben ist, wird die Elementspezifikation verwendet. Dieses Attribut ist für alle Dateien und Abhängigkeiten mit dem DependencyType Wert von Install.
IsDataFile Ein Boolean Metadatenwert, der angibt, ob es sich bei der Datei um eine Datendatei handelt. Eine Datendatei ist besonders darauf spezialisiert, dass sie zwischen Anwendungsupdates migriert wird. Diese Metadaten sind nur für Dateien gültig. Der Standardwert lautet False.

Beispiel 1

In diesem Beispiel wird die GenerateApplicationManifest Aufgabe verwendet, um ein ClickOnce-Anwendungsmanifest und die GenerateDeploymentManifest Aufgabe zu generieren, um ein Bereitstellungsmanifest für eine Anwendung mit einer einzigen Assembly zu generieren. Anschließend wird die SignFile Aufgabe zum Signieren der Manifeste verwendet.

Dies veranschaulicht das einfachste Szenario der Manifestgenerierung, in dem ClickOnce-Manifeste für ein einzelnes Programm generiert werden. Ein Standardname und eine Standardidentität werden aus der Assembly für das Manifest abgeleitet.

Note

Im folgenden Beispiel sind alle Anwendungsbinärdateien vorinstalliert, um sich auf Aspekte der Manifestgenerierung zu konzentrieren. In diesem Beispiel wird eine voll funktionsfähige ClickOnce-Bereitstellung erzeugt.

Note

Weitere Informationen zu der Eigenschaft, die Thumbprint in der SignFile Aufgabe in diesem Beispiel verwendet wird, finden Sie unter SignFile-Aufgabe.

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

Beispiel 2

In diesem Beispiel werden clickOnce-Anwendungs GenerateApplicationManifestGenerateDeploymentManifest - und Bereitstellungsmanifeste für eine Anwendung mit einer einzigen Assembly generiert, wobei Name und Identität von Manifesten angegeben werden.

Dieses Beispiel ähnelt dem vorherigen Beispiel, mit Ausnahme des Namens und der Identität der Manifeste, die explizit angegeben werden. Außerdem ist dieses Beispiel anstelle einer installierten Anwendung als Onlineanwendung konfiguriert.

Note

Im folgenden Beispiel sind alle Anwendungsbinärdateien vorinstalliert, um sich auf Aspekte der Manifestgenerierung zu konzentrieren. In diesem Beispiel wird eine voll funktionsfähige ClickOnce-Bereitstellung erzeugt.

Note

Weitere Informationen zu der Eigenschaft, die Thumbprint in der SignFile Aufgabe in diesem Beispiel verwendet wird, finden Sie unter SignFile-Aufgabe.

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

Beispiel 3

In diesem Beispiel werden clickOnce-Anwendungs GenerateApplicationManifestGenerateDeploymentManifest - und Bereitstellungsmanifeste für eine Anwendung mit mehreren Dateien und Assemblys generiert.

Note

Im folgenden Beispiel sind alle Anwendungsbinärdateien vorinstalliert, um sich auf Aspekte der Manifestgenerierung zu konzentrieren. In diesem Beispiel wird eine voll funktionsfähige ClickOnce-Bereitstellung erzeugt.

Note

Weitere Informationen zu der Eigenschaft, die Thumbprint in der SignFile Aufgabe in diesem Beispiel verwendet wird, finden Sie unter SignFile-Aufgabe.

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

Beispiel 4

In diesem Beispiel wird die GenerateApplicationManifest Aufgabe verwendet, um ein systemeigenes Manifest für anwendungseigeneTest.exezu generieren, wobei auf systemeigene Komponenten Alpha.dll und eine isolierte COM-Komponente Bravo.dllverwiesen wird.

In diesem Beispiel wird das Test.exe.manifest erstellt, wodurch die Anwendung XCOPY bereitgestellt werden kann und die Kostenlose Registrierung von COM genutzt wird.

Note

Im folgenden Beispiel sind alle Anwendungsbinärdateien vorinstalliert, um sich auf Aspekte der Manifestgenerierung zu konzentrieren. In diesem Beispiel wird eine voll funktionsfähige ClickOnce-Bereitstellung erzeugt.

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

Siehe auch