Freigeben über


Festlegen des Speicherortes einer Assembly

Hinweis

Dieser Artikel ist spezifisch für .NET Framework. Sie gilt nicht für neuere Implementierungen von .NET, einschließlich .NET 6 und höherer Versionen.

Es gibt zwei Möglichkeiten, den Speicherort einer Assembly anzugeben:

Sie können auch das .NET Framework-Konfigurationstool (Mscorcfg.msc) verwenden, um Assemblyspeicherorte anzugeben oder Speicherorte für die Common Language Runtime zu spezifizieren, an denen nach Assemblys gesucht oder diese überprüft werden sollen.

Verwenden des <codeBase> Elements

Sie können das <codeBase>-Element nur in Maschinenkonfigurations- oder Publisherrichtliniendateien verwenden, die auch die Assemblyversion umleiten. Wenn die Laufzeit bestimmt, welche Assemblyversion verwendet werden soll, wendet sie die Codebasiseinstellung aus der Datei an, die die Version bestimmt. Wenn keine Codebasis angegeben ist, sucht die Runtime auf normale Weise nach Assemblys. Ausführliche Informationen finden Sie unter How the Runtime Locates Assemblies.

Das folgende Beispiel zeigt, wie der Speicherort einer Assembly angegeben wird.

<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>

Das version Attribut ist für alle assemblys mit starkem Namen erforderlich, sollte jedoch für Assemblys weggelassen werden, die nicht stark benannt sind. Das <codeBase> Element erfordert das href Attribut. Versionsbereiche im <codeBase> Element können nicht angegeben werden.

Hinweis

Wenn Sie einen Codebase-Hinweis für eine Assembly bereitstellen, die nicht mit starkem Namen versehen ist, muss der Hinweis auf die Anwendungsbasis oder ein Unterverzeichnis des Anwendungsbasisverzeichnisses verweisen.

Verwenden des <probing> Elements

Die Runtime sucht mithilfe von Tests nach Assemblys, die nicht über eine Codebasis verfügen. Weitere Informationen zum Probing finden Sie unter How the Runtime Locates Assemblies.

Sie können das <Probingelement> in der Anwendungskonfigurationsdatei verwenden, um Unterverzeichnisse anzugeben, die die Laufzeit durchsuchen soll, wenn Sie eine Assembly suchen. Das folgende Beispiel zeigt, wie Verzeichnisse angegeben werden, die die Laufzeit durchsuchen soll.

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

Das privatePath Attribut enthält die Verzeichnisse, nach denen die Laufzeit nach Assemblys suchen soll. Wenn sich die Anwendung unter "C:\Programme\MyApp" befindet, sucht die Laufzeit nach Assemblys, die keine Codebasis in "C:\Programme\MyApp\Bin", "C:\Programme\MyApp\Bin2\Subbin" und "C:\Programme\MyApp\MyApp\Bin3" angeben. Die in privatePath diesem Verzeichnis angegebenen Verzeichnisse müssen Unterverzeichnisse des Anwendungsbasisverzeichnisses sein.

Siehe auch