Partager via


(3) Chemin d'accès pour les composants privés

L'exemple Client étudié précédemment présente un inconvénient majeur : Client.exe et Stringer.dll doivent résider dans le même répertoire. Toutefois, dans la réalité, il est souvent avantageux d'utiliser une structure de répertoires pour gérer les composants. Le .NET Framework fournit un mécanisme de configuration permettant aux administrateurs de spécifier un répertoire contenant les composants privés qui devront être chargés.

Après la création de l'exemple Client précédent, le sous-répertoire 3_SimplePath contient une version du programme fonctionnant avec un répertoire privé. L'ensemble du code source est identique. Toutefois, le processus de création a été modifié à des fins d'illustration pour créer Stringer.dll dans le sous-répertoire Stringer :

csc /target:library /out:Stringer\Stringer.dll  
   ... Stringer\Stringer.cs
csc /reference:Stringer\Stringer.dll ... Client.cs

Alors que l'option de compilation /reference: permet de rechercher un composant dans un sous-répertoire lors de la compilation du programme, un fichier XML de configuration d'application distinct est nécessaire au moment de l'exécution pour prendre en charge les composants situés dans d'autres répertoires. Pour les fichiers clients exécutables, tels que ceux décrits dans ce didacticiel, le fichier de configuration réside dans le même répertoire que le fichier exécutable. Il possède le nom complet du fichier exécutable avec l'extension de nom de fichier .config. L'exemple de fichier Client.exe.config spécifie une balise privatePath :

Listing 1. Fichier de configuration pour Client.exe (Client.exe.config)

<configuration>   
  <runtime>
    <assemblyBinding
       xmlns="urn:schemas-microsoft-com:asm.v1">
       <probing privatePath="Stringer"/>
    </assemblyBinding>
  </runtime>
</configuration>

Lorsque ce fichier de configuration est placé dans le même répertoire que le fichier exécutable, l'environnement .NET utilise la balise privatePath au moment de l'exécution pour déterminer l'emplacement des composants — outre le répertoire de l'application.

**Remarque   **Lors du chargement d'un assembly, le runtime recherche également un chemin d'accès privé correspondant au nom de l'assembly.

Voir aussi

Déploiement d'applications avec des chemins d'accès privés | (4) Composant partagé | (5) Versioning des composants | Résumé de l'empaquetage et du déploiement | Annexe A : Informations supplémentaires sur l'empaquetage et le déploiement | Annexe B : Outils d'empaquetage et de déploiement