ClickOnce-Anwendungsmanifest

Ein ClickOnce-Anwendungsmanifest ist eine XML-Datei, die eine Anwendung beschreibt, die mit ClickOnce bereitgestellt wird.

ClickOnce-Anwendungsmanifeste verfügen über die folgenden Elemente und Attribute.

Element Beschreibung Attribute
<assembly>-Element Erforderlich. Ein Element der obersten Ebene. manifestVersion
<assemblyIdentity>-Element Erforderlich. Gibt die primäre Assembly der ClickOnce-Anwendung an. name

version

publicKeyToken

processorArchitecture

language
<trustInfo>-Element Gibt die Sicherheitsanforderungen der Anwendung an. Keine
<entryPoint>-Element Erforderlich. Gibt den Einstiegspunkt des Anwendungscodes an. name
<dependency>-Element Erforderlich. Gibt jede Abhängigkeit an, die für die Ausführung der Anwendung erforderlich ist. Gibt optional Assemblys an, die vorinstalliert werden müssen. Keine
<file>-Element Optional. Gibt jede Nicht-Assemblydatei an, die von der Anwendung verwendet wird. Kann COM-Isolationsdaten (Component Object Model) enthalten, die der Datei zugeordnet sind. name

size

group

optional

writeableType
<fileAssociation>-Element Optional. Gibt eine Erweiterung an, die der Anwendung zugeordnet werden soll. extension

description

progid

defaultIcon

Hinweise

Die ClickOnce-Anwendungsmanifestdatei identifiziert eine Anwendung, die mit ClickOnce bereitgestellt wurde. Weitere Informationen zur ClickOnce-Bereitstellung finden Sie unter ClickOnce security and deployment (ClickOnce-Sicherheit und Bereitstellung).

Dateispeicherort

Ein ClickOnce-Anwendungsmanifest ist für eine einzelne Version einer Bereitstellung spezifisch. Aus diesem Grund müssen sie getrennt von Bereitstellungsmanifesten gespeichert werden. Die allgemeine Konvention besteht darin, sie in einem Unterverzeichnis zu platzieren, das nach der zugeordneten Version benannt ist.

Das Anwendungsmanifest muss vor der Bereitstellung immer signiert werden. Wenn Sie ein Anwendungsmanifest manuell ändern, müssen Sie mage.exe verwenden, um das Anwendungsmanifest erneut zu signieren, das Bereitstellungsmanifest zu aktualisieren und dann das Bereitstellungsmanifest erneut zu signieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung.

Dateinamenssyntax

Der Name einer ClickOnce-Anwendungsmanifestdatei muss den vollständigen Namen und die Erweiterung der Anwendung, wie im assemblyIdentity-Element angegeben, gefolgt von der MANIFEST-Erweiterung aufweisen. Beispielsweise würde ein Anwendungsmanifest, das auf die Anwendung Example.exe verweist, die folgende Syntax für den Dateinamen verwenden.

example.exe.manifest

Beispiel

Das folgende Codebeispiel zeigt ein Anwendungsmanifest für eine ClickOnce-Anwendung.

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v2="urn:schemas-microsoft-com:clickonce.v2" xmlns="urn:schemas-microsoft-com:asm.v2" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1">
  <asmv1:assemblyIdentity name="My Application Deployment.exe" version="1.0.0.0" publicKeyToken="43cb1e8e7a352766" language="neutral" processorArchitecture="x86" type="win32" />
  <application />
  <entryPoint>
    <assemblyIdentity name="MyApplication" version="1.0.0.0" language="neutral" processorArchitecture="x86" />
    <commandLine file="MyApplication.exe" parameters="" />
  </entryPoint>
  <trustInfo>
    <security>
      <applicationRequestMinimum>
        <PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!--
          UAC Manifest Options
          If you want to change the Windows User Account Control level replace the
          requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

         If you want to utilize File and Registry Virtualization for backward
         compatibility then delete the requestedExecutionLevel node.
    -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentOS>
      <osVersionInfo>
        <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
      </osVersionInfo>
    </dependentOS>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
      <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.20506.0" />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="4096">
      <assemblyIdentity name="MyApplication" version="1.0.0.0" language="neutral" processorArchitecture="x86" />
      <hash>
        <dsig:Transforms>
          <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
        </dsig:Transforms>
        <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <dsig:DigestValue>DpTW7RzS9IeT/RBSLj54vfTEzNg=</dsig:DigestValue>
      </hash>
    </dependentAssembly>
  </dependency>
<publisherIdentity name="CN=DOMAINCONTROLLER\UserMe" issuerKeyHash="18312a18a21b215ecf4cdb20f5a0e0b0dd263c08" /><Signature Id="StrongNameSignature" xmlns="http://www.w3.org/2000/09/xmldsig#">
...
</Signature></r:issuer></r:license></msrel:RelData></KeyInfo></Signature></asmv1:assembly>

Weitere Informationen