ClickOnce-Anwendungsmanifest

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

ClickOnce Anwendungsmanifesten verfügen über die folgenden Elemente und Attribute.

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

version

publicKeyToken

processorArchitecture

language
<trustInfo>-Element Gibt die Sicherheitsanforderungen der Anwendung an. Keine
<entryPoint>-Element Erforderlich. Identifiziert den Einstiegspunkt für den Anwendungscode. 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. Identifiziert jede Nichtassemblydatei, 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. Identifiziert eine Dateierweiterung, die der Anwendung zugeordnet werden soll. extension

description

progid

defaultIcon

Hinweise

Die ClickOnce Anwendungsmanifestdatei identifiziert eine mit bereitgestellte ClickOnce Anwendung. Weitere Informationen zu ClickOnce finden Sie unter ClickOnce-Sicherheit und Bereitstellung.

Dateispeicherort

Ein ClickOnce Anwendungsmanifest ist spezifisch für eine einzelne Version einer Bereitstellung. Aus diesem Grund sollten sie getrennt von Bereitstellungsmanifesten gespeichert werden. Die allgemeine Konvention besteht im Platzieren der Dateien in einem Unterverzeichnis, 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 Erweiterung .manifest aufweisen. Beispielsweise würde ein Anwendungsmanifest, das auf die Example.exe anwendung verweist, die folgende Dateinamensyntax 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>

Siehe auch