Uso di assembly side-by-side

Utilizzare la procedura seguente per sviluppare una nuova applicazione o aggiornare un'applicazione esistente per usare gli assembly side-by-side disponibili da Microsoft o da altri autori di assembly side-by-side. Per un elenco degli assembly side-by-side attualmente forniti da Microsoft, vedere Assembly microsoft side-by-side supportati. Si noti che l'applicazione deve essere eseguita almeno in Windows XP per installare gli assembly come assembly side-by-side. Per altre informazioni, vedere Linee guida per la creazione di assembly side-by-side.

Per aggiungere un assembly side-by-side a un'applicazione

  1. Identificare gli assembly side-by-side richiesti dall'applicazione. A partire da Windows XP, questi assembly side-by-side e i relativi manifesti di assembly vengono installati con il sistema operativo, ma non sono registrati a livello globale.

  2. Utilizzare un editor XML per creare un manifesto dell'applicazione. Vedere il manifesto dell'applicazione di esempio seguente. Per altre informazioni, vedere Manifesti dell'applicazione nella Guida di riferimento ai file manifesto.

  3. Immettere i valori degli attributi nel sottoelemento assemblyIdentity del contesto DEF del manifesto dell'applicazione che definisce in modo univoco l'applicazione. Per altre informazioni sull'assembly del contesto DEFIdentity, vedere Manifesti dell'applicazione.

  4. Se l'assembly contiene assembly dipendenti, immettere i valori degli attributi nei sottoelementi assembly del contesto REF corrispondentiElementidentity del manifesto dell'applicazione. Per altre informazioni sull'assembly del contesto REFIdentity, vedere Manifesti dell'applicazione.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. È possibile includere il manifesto dell'applicazione nel file di intestazione eseguibile binario dell'applicazione.

    In questo caso, aggiungere anche la riga seguente al file di intestazione dell'applicazione:

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"

    In alternativa, è possibile inserire un file manifesto separato nella stessa directory del file eseguibile dell'applicazione. Il sistema operativo carica prima il manifesto dal file system e quindi controlla la sezione della risorsa del file eseguibile. La versione del file system ha la precedenza.

  6. Gli assembly condivisi devono essere installati usando Windows Installer versione 2.0. Creare un pacchetto di Windows Installer come descritto in Come si installano assembly Win32 per la condivisione side-by-side in Windows XP?.

  7. Gli assembly privati possono essere installati usando Windows Installer versione 2.0. Creare un pacchetto di Windows Installer come descritto in Come si installano assembly Win32 per l'uso privato di un'applicazione in Windows XP?. È anche possibile usare qualsiasi altro programma di installazione per copiare un assembly privato e il relativo manifesto nella stessa cartella del file eseguibile dell'applicazione.

  8. Testare l'applicazione per verificare i risultati. Si noti che nel computer di test non deve essere registrato l'assembly side-by-side.

  9. Distribuire l'applicazione o aggiornare come pacchetto di Windows Installer.

Manifesto dell'applicazione di esempio

Di seguito è riportato un esempio di manifesto dell'applicazione:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="Microsoft.Windows.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
    </dependentAssembly>
  </dependency>
</assembly>