Informazioni sugli assembly privati

Un assembly privato è un assembly distribuito con un'applicazione ed è disponibile per l'uso esclusivo di tale applicazione. Vale a dire, altre applicazioni non condividono l'assembly privato. Gli assembly privati sono uno dei metodi che possono essere usati per creare applicazioni isolate. Per altre informazioni, vedere Informazioni sulle applicazioni isolate e sugli assembly side-by-side.

Gli assembly privati devono essere progettati per lavorare side-by-side con altre versioni dell'assembly nel sistema. Per altre informazioni, vedere Linee guida per la creazione di assembly side-by-side.

Gli assembly privati devono essere accompagnati da un manifesto dell'assembly. Si noti che le restrizioni relative ai nomi si applicano quando si crea una DLL come assembly privato per soddisfare il modo in cui Windows cerca assembly privati. Quando si cerca assembly privati, il metodo consigliato consiste nell'includere il manifesto dell'assembly nella DLL come risorsa. In questo caso, l'ID risorsa deve essere uguale a 1 e il nome dell'assembly privato può essere uguale al nome della DLL. Ad esempio, se il nome della DLL è MICROSOFT.WINDOWS.MYSAMPLE.DLL, il valore dell'attributo name usato nell'elemento assemblyIdentity del manifesto può anche essere Microsoft.Windows.mysample. Un metodo alternativo di ricerca di assembly privati consiste nel fornire il manifesto dell'assembly in un file separato. In questo caso, il nome dell'assembly e il relativo manifesto devono essere diversi dal nome della DLL. Ad esempio, Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest e Microsoft.Windows.mysample.dll. Per altre informazioni sulla ricerca side-by-side degli assembly privati, vedere Assembly Searching Sequence.

Gli assembly privati vengono installati in una cartella della struttura di directory dell'applicazione. In genere, questa è la cartella contenente il file eseguibile dell'applicazione. Gli assembly privati possono essere distribuiti nella stessa cartella dell'applicazione, in una cartella con lo stesso nome dell'assembly o in una sottocartella specifica della lingua con lo stesso nome dell'assembly. Ad esempio, usare una delle strutture di directory seguenti per distribuire un assembly privato, Microsoft.tools.pop, senza alcuna lingua specificata.

Struttura di directory Descrizione
APPDIR\MICROSOFT.TOOLS.POP.DLL Il manifesto viene distribuito come risorsa nella DLL.
Appdir\Microsoft.Tools.Pop.MANIFEST Il manifesto viene distribuito come file separato.
APPDIR\MICROSOFT.TOOLS.POP\MICROSOFT.TOOLS.POP.DLL Il manifesto viene distribuito come risorsa nella DLL, che si trova in una sottocartella con il nome dell'assembly.
Appdir\Microsoft.Tools.Pop\Microsoft.Tools.Pop.MANIFEST Il manifesto viene distribuito come file separato in una sottocartella con il nome dell'assembly.

 

Importante

Per le versioni del sistema operativo Windows prima di Windows 7 e Windows Server 2008 R2, gli assembly privati nativi devono essere distribuiti nella cartella contenente il file eseguibile dell'applicazione. L'installazione in una cartella specifica del linguaggio o nella cartella con lo stesso nome dell'assembly non è supportata per gli assembly privati nativi.

 

Usare una delle strutture di directory seguenti per distribuire un assembly privato, Microsoft.tools.pop, con una lingua specificata. Nell'esempio seguente la lingua usata da Microsoft.Tools.Pop è inglese (Stati Uniti) e il codice del linguaggio è en-us. È consigliabile sostituire il codice del linguaggio DHTML corretto per l'assembly.

appdir\en-us\Microsoft.tools.pop.DLL
appdir\en-us\Microsoft.tools.pop.MANIFEST
appdir\en-us\Microsoft.tools.pop\Microsoft.tools.pop.DLL
appdir\en-us\Microsoft.tools.pop\Microsoft.tools.pop.MANIFEST

Gli assembly privati possono essere installati da qualsiasi metodo di installazione che può copiare il file dell'assembly in questa cartella, ad esempio il comando xcopy . Per altre informazioni su come installare assembly privati usando Windows Installer, vedere Installazione di assembly Win32.

Gli assembly privati possono essere installati anche nei sistemi operativi precedenti a Windows XP. In questo caso, l'assembly deve essere registrato e in questi sistemi operativi il manifesto non viene usato. Una copia dell'assembly privato viene installata in una cartella privata per l'uso esclusivo dell'applicazione. Un'altra versione dell'assembly può essere registrata a livello globale nel sistema e disponibile per qualsiasi applicazione che lo associa. La versione globale dell'assembly può essere la versione installata con l'applicazione o una versione precedente. Per altre informazioni, vedere Reindirizzamento DLL/COM in Windows. Un assembly può essere installato anche come assembly condiviso da più applicazioni. Per altre informazioni, vedere Assembly condivisi.

Si noti che i passaggi per la creazione di un assembly privato sono identici a quelli per la creazione di un assembly condiviso con due eccezioni:

  • Non è necessario firmare un assembly privato e publickeyToken non è necessario nell'elemento assemblyIdentity del manifesto dell'assembly.
  • Gli assembly privati possono essere installati nella cartella dell'applicazione usando qualsiasi tecnologia di installazione. Gli assembly privati non devono essere installati usando Windows Installer.