Partager via


Spécification de l'emplacement d'un assembly

Remarque

Cet article est spécifique à .NET Framework. Elle ne s’applique pas aux implémentations plus récentes de .NET, notamment .NET 6 et versions ultérieures.

Il existe deux manières de définir l’emplacement d’un assemblage :

Vous pouvez également utiliser l’outil de configuration .NET Framework (Mscorcfg.msc) pour spécifier des emplacements d’assembly ou spécifier des emplacements pour le Common Language Runtime afin de détecter les assemblys.

Utilisation de l’élément <codeBase>

Vous pouvez utiliser l’élément <codeBase> uniquement dans les fichiers de configuration machine ou de stratégie de publication qui redirigent également la version de l’assembly. Lorsque le runtime détermine la version d’assembly à utiliser, il applique le paramètre de base de code du fichier qui détermine la version. Si aucune base de code n’est indiquée, le runtime recherche l'assemblage de la manière habituelle. Pour plus d’informations, consultez Comment le runtime localise les assemblys.

L'exemple suivant montre comment spécifier l'emplacement d'un assemblage.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <codeBase version="2.0.0.0"
                   href="http://www.litwareinc.com/myAssembly.dll"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

L’attribut version est requis pour tous les assemblys avec nom fort, mais doit être omis pour les assemblys qui ne portent pas de nom fort. L’élément <codeBase> nécessite l’attribut href . Vous ne pouvez pas spécifier de plages de versions dans l’élément <codeBase> .

Remarque

Si vous fournissez un indicateur de base de code pour un assembly qui n’est pas fort nommé, l’indicateur doit pointer vers la base de l’application ou un sous-répertoire du répertoire de base de l’application.

Utilisation de l’élément <probing>

Le runtime localise les assemblys qui n’ont pas de base de code en probisant. Pour plus d’informations sur la détection, consultez Comment le runtime localise les assemblys.

Vous pouvez utiliser l’élément <de détection> dans le fichier de configuration de l’application pour spécifier les sous-répertoires que le runtime doit rechercher lors de la localisation d’un assembly. L’exemple suivant montre comment spécifier des répertoires que le runtime doit rechercher.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <probing privatePath="bin;bin2\subbin;bin3"/>
      </assemblyBinding>
   </runtime>
</configuration>

L’attribut privatePath contient les répertoires dans lesquels l'environnement d'exécution doit rechercher des assemblages. Si l’application se trouve dans C :\Program Files\MyApp, le runtime recherche les assemblys qui ne spécifient pas de base de code dans C :\Program Files\MyApp\Bin, C :\Program Files\MyApp\Bin2\Subbin et C :\Program Files\MyApp\Bin3. Les répertoires spécifiés dans privatePath doivent être des sous-répertoires du répertoire de base de l’application.

Voir aussi