À propos des assemblys privés

Un assembly privé est un assembly déployé avec une application et disponible pour l’utilisation exclusive de cette application. Autrement dit, d’autres applications ne partagent pas l’assembly privé. Les assemblys privés sont l’une des méthodes qui peuvent être utilisées pour créer des applications isolées. Pour plus d’informations, consultez À propos des applications isolées et des assemblys côte à côte.

Les assemblys privés doivent être conçus pour fonctionner côte à côte avec d’autres versions de l’assembly sur le système. Pour plus d’informations, consultez Recommandations pour la création d’assemblys côte à côte.

Les assemblys privés doivent être accompagnés d’un manifeste d’assembly. Notez que des restrictions de nom s’appliquent lors de l’empaquetage d’une DLL en tant qu’assembly privé pour prendre en charge la façon dont Windows recherche des assemblys privés. Lors de la recherche d’assemblys privés, la méthode recommandée consiste à inclure le manifeste d’assembly dans la DLL en tant que ressource. Dans ce cas, l’ID de ressource doit être égal à 1 et le nom de l’assembly privé peut être identique au nom de la DLL. Par exemple, si le nom de la DLL est MICROSOFT.WINDOWS.MYSAMPLE.DLL, la valeur de l’attribut name utilisé dans l’élément assemblyIdentity du manifeste peut également être Microsoft.Windows.mysample. Une autre méthode de recherche d’assemblys privés consiste à fournir le manifeste d’assembly dans un fichier distinct. Dans ce cas, le nom de l’assembly et son manifeste doivent être différents du nom de la DLL. Par exemple, Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest et Microsoft.Windows.mysample.dll. Pour plus d’informations sur la façon dont les recherches côte à côte pour les assemblys privés, consultez Séquence de recherche d’assemblys.

Les assemblys privés sont installés dans un dossier de la structure de répertoires de l’application. En règle générale, il s’agit du dossier contenant le fichier exécutable de l’application. Les assemblys privés peuvent être déployés dans le même dossier que l’application, dans un dossier portant le même nom que l’assembly ou dans un sous-dossier spécifique à la langue portant le même nom que l’assembly. Par exemple, utilisez l’une des structures de répertoires suivantes pour déployer un assembly privé, Microsoft.tools.pop, sans aucune langue spécifiée.

Structure de répertoires Description
APPDIR\MICROSOFT.TOOLS.POP.DLL Le manifeste est déployé en tant que ressource dans la DLL.
Appdir\Microsoft.Tools.Pop.MANIFEST Le manifeste est déployé sous la forme d’un fichier distinct.
APPDIR\MICROSOFT.TOOLS.POP\MICROSOFT.TOOLS.POP.DLL Le manifeste est déployé en tant que ressource dans la DLL, qui se trouve dans un sous-dossier portant le nom de l’assembly.
Appdir\Microsoft.Tools.Pop\Microsoft.Tools.Pop.MANIFEST Le manifeste est déployé sous la forme d’un fichier distinct dans un sous-dossier portant le nom de l’assembly.

 

Important

Pour les versions du système d’exploitation Windows antérieures à Windows 7 et Windows Server 2008 R2, les assemblys privés natifs doivent être déployés dans le dossier qui contient le fichier exécutable de l’application. L’installation dans un dossier spécifique à une langue ou dans le dossier portant le même nom que l’assembly n’est pas prise en charge pour les assemblys privés natifs.

 

Utilisez l’une des structures de répertoires suivantes pour déployer un assembly privé, Microsoft.tools.pop, avec une langue spécifiée. Dans l’exemple suivant, la langue utilisée par Microsoft.Tools.Pop est l’anglais (États-Unis) et le code de langue est en-us. Vous devez remplacer le code de langage DHTML correct pour votre 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

Les assemblys privés peuvent être installés par n’importe quelle méthode d’installation qui peut copier le fichier de l’assembly dans ce dossier, comme la commande xcopy . Pour plus d’informations sur l’installation d’assemblys privés à l’aide de Windows Installer, consultez Installation des assemblys Win32.

Les assemblys privés peuvent également être installés sur des systèmes d’exploitation antérieurs à Windows XP. Dans ce cas, l’assembly doit être inscrit et sur ces systèmes d’exploitation, le manifeste n’est pas utilisé. Une copie de l’assembly privé est installée dans un dossier privé pour l’utilisation exclusive de l’application. Une autre version de l’assembly peut être inscrite globalement sur le système et disponible pour toute application qui y est liée. La version globale de l’assembly peut être la version installée avec l’application ou bien une version antérieure. Pour plus d’informations, consultez Redirection DLL/COM sur Windows. Un assembly peut également être installé en tant qu’assembly partagé pour une utilisation par plusieurs applications. Pour plus d’informations, consultez Assemblys partagés.

Notez que les étapes de création d’un assembly privé sont identiques à celles de création d’un assembly partagé, à deux exceptions près :

  • Il n’est pas nécessaire de signer un assembly privé et publickeyToken n’est pas requis dans l’élément assemblyIdentity du manifeste de l’assembly.
  • Les assemblys privés peuvent être installés dans le dossier de l’application à l’aide de n’importe quelle technologie d’installation. Il n’est pas nécessaire d’installer des assemblys privés à l’aide de Windows Installer.