ClickOnce-Anwendungsmanifest
Ein Anwendungsmanifest ist eine XML-Datei, die eine mit ClickOnce bereitgestellte Anwendung beschreibt.
Anwendungsmanifeste verfügen über die folgenden Elemente und Attribute.
Element |
Beschreibungen |
Attribute |
---|---|---|
Erforderlich. Oberstes Element. |
manifestVersion |
|
Erforderlich. Identifiziert die primäre Assembly der ClickOnce-Anwendung. |
name version publicKeyToken processorArchitecture language |
|
Identifiziert die Sicherheitsanforderungen der Anwendung. |
None |
|
Erforderlich. Identifiziert den Anwendungscodeeinstiegspunkt. |
name |
|
Erforderlich. Identifiziert die zum Ausführen der Anwendung erforderlichen Abhängigkeiten. Identifiziert optional Assemblys, die vorinstalliert werden müssen. |
None |
|
Optional. Identifiziert jede Nichtassemblydatei, die von der Anwendung verwendet wird. Kann der Datei zugeordnete COM-Isolationsdaten (Component Object Model) umfassen. |
name size group optional writeableType |
|
Optional. Gibt eine Dateierweiterung an, die der Anwendung zugeordnet sein soll. |
extension description progid defaultIcon |
Hinweise
Die Anwendungsmanifestdatei identifiziert eine mit ClickOnce bereitgestellte Anwendung. Weitere Informationen zu ClickOnce finden Sie unter ClickOnce-Sicherheit und Bereitstellung.
Dateispeicherort
Ein Anwendungsmanifest ist nur für eine einzelne Version einer Bereitstellung bestimmt. Aus diesem Grund müssen Anwendungsmanifeste getrennt von Bereitstellungsmanifesten gespeichert werden. Im Allgemeinen werden sie in einem Unterverzeichnis platziert, das nach der zugewiesenen Version benannt ist.
Das Anwendungsmanifest muss vor der Bereitstellung immer signiert werden. Wenn Sie ein Anwendungsmanifest manuell ändern, müssen Sie das Anwendungsmanifest mit mage.exe erneut signieren, das Bereitstellungsmanifest aktualisieren und anschließend das Bereitstellungsmanifest erneut signieren. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Manuelles Bereitstellen einer ClickOnce-Anwendung.
Dateinamensyntax
Der Name einer Anwendungsmanifestdatei muss mit dem im assemblyIdentity-Element identifizierten vollständigen Namen und der entsprechenden Erweiterung identisch sein und die Erweiterung .manifest aufweisen. Beispielsweise verwendet ein auf die Anwendung Example.exe verweisendes Anwendungsmanifest die folgende Dateinamensyntax:
example.exe.manifest
Beispiel
Im folgenden Codebeispiel wird ein Anwendungsmanifest für eine ClickOnce-Anwendung veranschaulicht.
<?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>