Condividi tramite


Specificare la posizione di un assembly

Annotazioni

Questo articolo è specifico di .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.

Esistono due modi per specificare la posizione di un assembly.

È anche possibile usare lo strumento di configurazione di .NET Framework (Mscorcfg.msc) per indicare i percorsi degli assembly o indicare i percorsi in cui il Common Language Runtime può analizzare gli assembly.

Utilizzo dell'elemento <codeBase>

È possibile usare l'elemento <codeBase> solo nei file di criteri del pubblicatore o di configurazione della macchina che reindirizzano anche la versione dell'assembly. Quando il runtime determina la versione dell'assembly da usare, applica l'impostazione della codebase dal file che determina la versione. Se non viene indicata alcuna base di codice, il runtime sonda l'assembly normalmente. Per informazioni dettagliate, vedere Come il runtime individua gli assembly.

Nell'esempio seguente viene illustrato come specificare il percorso di un assembly.

<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'attributo version è obbligatorio per tutti gli assembly con nome sicuro, ma deve essere omesso per gli assembly che non sono con nome sicuro. L'elemento <codeBase> richiede l'attributo href . Non è possibile specificare intervalli di versione nell'elemento <codeBase> .

Annotazioni

Se si specifica un hint di codebase per un assembly non con nome sicuro, l'hint deve puntare alla base dell'applicazione o a una sottodirectory della directory di base dell'applicazione.

Utilizzo dell'elemento <probing>

Il runtime individua gli assembly che non hanno una base di codice attraverso l'esplorazione. Per ulteriori informazioni sull'analisi, vedere Come il runtime individua gli assembly.

È possibile usare l'elemento <di probe> nel file di configurazione dell'applicazione per specificare le sottodirectory in cui il runtime deve cercare quando si individua un assembly. Nell'esempio seguente viene illustrato come specificare le directory in cui deve essere eseguita la ricerca del runtime.

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

L'attributo privatePath contiene le directory in cui il runtime deve cercare gli assembly. Se l'applicazione si trova in C:\Programmi\MyApp, il runtime cercherà gli assembly che non specificano una codebase in C:\Programmi\MyApp\Bin, C:\Programmi\MyApp\Bin2\Subbin e C:\Programmi\MyApp\Bin3. Le directory specificate in privatePath devono essere sottodirectory della directory di base dell'applicazione.

Vedere anche