Manifesto dell'applicazione ClickOnce
Un manifesto dell'applicazione è un file XML che descrive un'applicazione distribuita mediante ClickOnce.
I manifesti delle applicazioni dispongono degli elementi e degli attributi riportati di seguito.
Elemento |
Oggetto di descrizione |
Attributi |
---|---|---|
Obbligatoria. Elemento di primo livello. |
manifestVersion |
|
Obbligatoria. Identifica l'assembly primario dell'applicazione ClickOnce. |
name version publicKeyToken processorArchitecture language |
|
Identifica i requisiti di sicurezza dell'applicazione. |
Nessuna correzione |
|
Obbligatoria. Identifica il punto di ingresso del codice dell'applicazione. |
name |
|
Obbligatoria. Identifica ciascuna dipendenza richiesta per l'esecuzione dell'applicazione. Può anche identificare gli assembly che è necessario preinstallare. |
Nessuna correzione |
|
Facoltativo. Identifica ciascun file non assembly utilizzato dall'applicazione. Può includere i dati sull'isolamento COM (Component Object Model) associati al file. |
name size group optional writeableType |
|
Facoltativo. Identifica un'estensione di file da associare all'applicazione. |
extension description progid defaultIcon |
Note
Il file manifesto dell'applicazione identifica un'applicazione distribuita mediante ClickOnce. Per ulteriori informazioni su ClickOnce, vedere Sicurezza e distribuzione di ClickOnce.
Percorso file
Un manifesto dell'applicazione è specifico per una singola versione di una distribuzione. Per questo motivo, i manifesti dell'applicazione devono essere memorizzati separatamente da quelli di distribuzione. Di solito vengono inseriti in una sottodirectory a cui viene assegnato un nome in base alla versione associata.
Il manifesto dell'applicazione deve essere sempre firmato prima della distribuzione. Se si modifica un manifesto dell'applicazione manualmente, è necessario utilizzare mage.exe per firmare di nuovo tali manifesti dell'applicazione, per aggiornare il manifesto di distribuzione e quindi firmare nuovamente il manifesto di distribuzione. Per ulteriori informazioni, vedere Procedura dettagliata: distribuzione manuale di un'applicazione ClickOnce.
Sintassi del nome file
Il nome di un file manifesto dell'applicazione deve essere composto dal nome completo e dall'estensione dell'applicazione identificati nell'elemento assemblyIdentity, seguiti dall'estensione manifest. Per un manifesto dell'applicazione che fa riferimento, ad esempio, all'applicazione Example.exe verrà utilizzata la sintassi del nome di file riportata di seguito.
example.exe.manifest
Esempio
Nell'esempio di codice riportato di seguito viene illustrato un manifesto 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>