Manifesto dell'applicazione ClickOnce
Un manifesto dell'applicazione ClickOnce è un file XML che descrive un'applicazione distribuita tramite ClickOnce.
I manifesti dell'applicazione ClickOnce hanno gli elementi e gli attributi seguenti.
Elemento | Descrizione | Attributi |
---|---|---|
<Elemento assembly> | Obbligatorio. Elemento di primo livello. | manifestVersion |
<Elemento assemblyIdentity> | Obbligatorio. Identifica l'assembly primario dell'applicazione ClickOnce. | name version publicKeyToken processorArchitecture language |
<Elemento trustInfo> | Identifica i requisiti di sicurezza dell'applicazione. | None |
<Elemento entryPoint> | Obbligatorio. Identifica il punto di ingresso del codice dell'applicazione. | name |
<Elemento dependency> | Obbligatorio. Identifica ogni dipendenza necessaria per l'esecuzione dell'applicazione. Può anche identificare gli assembly che è necessario preinstallare. | None |
<Elemento file> | Facoltativo. Identifica ogni file nonassembly utilizzato dall'applicazione. Può includere i dati sull'isolamento COM (Component Object Model) associati al file. | name size group optional writeableType |
<Elemento fileAssociation> | Facoltativo. Identifica un'estensione di file da associare all'applicazione. | extension description progid defaultIcon |
Osservazioni:
Il file manifesto dell'applicazione ClickOnce identifica un'applicazione distribuita usando ClickOnce. Per altre informazioni su ClickOnce, vedere ClickOnce Security and Deployment.For more information about ClickOnce Security and Deployment.
Percorso del file
Un manifesto dell'applicazione ClickOnce è specifico di una singola versione di una distribuzione. Per questo motivo, devono essere archiviati separatamente dai manifesti di distribuzione. La convenzione comune consiste nell'inserirli in una sottodirectory denominata dopo la versione associata.
Il manifesto dell'applicazione deve sempre essere firmato prima della distribuzione. Se si modifica manualmente un manifesto dell'applicazione, è necessario usare mage.exe per firmare nuovamente il manifesto dell'applicazione, aggiornare il manifesto della distribuzione e quindi firmare nuovamente il manifesto della distribuzione. Per altre informazioni, vedere Procedura dettagliata: Distribuire manualmente un'applicazione ClickOnce.
Sintassi del nome file
Il nome di un file manifesto dell'applicazione ClickOnce deve essere il nome completo e l'estensione dell'applicazione, come identificato nell'elemento, seguito dall'estensione assemblyIdentity
.manifest. Ad esempio, un manifesto dell'applicazione che fa riferimento all'applicazione Example.exe userebbe la sintassi del nome file seguente.
example.exe.manifest
Esempio
L'esempio di codice seguente mostra un manifesto dell'applicazione per un'applicazione ClickOnce.
<?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>