<runtime> 的 <assemblyIdentity> 元素和<bindingRedirect> 元素
1.<assemblyIdentity> 元素
包含关于该程序集的标识信息。
<assemblyIdentity name="assembly name" publicKeyToken="public key token" culture="assembly culture"/>
下列各节描述了特性、子元素和父元素。
特性 |
说明 |
---|---|
name |
必需的特性。 程序集的名称 |
culture |
可选特性。 指定程序集的语言和国家/地区的字符串。 |
publicKeyToken |
可选特性。 指定程序集强名称的十六进制值。 |
processorArchitecture |
可选特性。 “x86”、“amd64”、“msil”或“ia64”值之一,为包含特定于处理器的代码的程序集指定处理器架构。 这些值不区分大小写。 如果该特性被赋予任何其他值,则整个 <assemblyIdentity> 元素将被忽略。 请参见ProcessorArchitecture。 |
processorArchitecture 特性
值 |
说明 |
---|---|
amd64 |
仅 64 位 AMD 处理器。 |
ia64 |
仅 64 位 Intel 处理器。 |
msil |
不特定于处理器和每字位数 |
x86 |
32 位 Intel 处理器,位于本机上或位于 64 位平台上的 Windows on Windows (WOW) 环境中。 |
子元素
无。
父元素
元素 |
说明 |
---|---|
assemblyBinding |
包含有关程序集版本重定向和程序集位置的信息。 |
configuration |
每个配置文件中的根元素,常用语言 runtime 和 .NET Framework 应用程序会使用这些文件。 |
dependentAssembly |
封装每个程序集的绑定策略和程序集位置。 为每个程序集使用一个 <dependentAssembly> 元素。 |
runtime |
包含程序集绑定和垃圾回收的相关信息。 |
备注
每个 <dependentAssembly>元素都必须有一个<assemblyIdentity> 子元素。
如果存在 processorArchitecture 特性,则 <assemblyIdentity> 元素仅应用于具有相应处理器架构的程序集。 如果不存在processorArchitecture 特性,则 <assemblyIdentity> 元素可以应用于具有任何处理器架构的程序集。
下面的示例演示一个配置文件用于两个名称相同的程序集,它们将两个不同的处理器架构作为目标,而且版本没有同步。 当应用程序在 x86 平台上执行时,第一个 <assemblyIdentity> 元素得到应用,而另一个被忽略。 如果应用程序在 x86 或 ia64 以外的其他平台上执行,两个元素都将被忽略。
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="MyAssembly" publicKeyToken="14a739be0244c389" culture="neutral" processorArchitecture="x86" /> <bindingRedirect oldVersion= "1.0.0.0" newVersion="1.1.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="MyAssembly" publicKeyToken="14a739be0244c389" culture="neutral" processorArchitecture="ia64" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
如果配置文件包含一个没有 processorArchitecture 特性的 <assemblyIdentity> 元素,并且不包含与平台匹配的元素,则将使用没有processorArchitecture 特性的元素。
示例
下面的示例说明如何提供有关程序集的信息。
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" /> <!--Redirection and codeBase policy for myAssembly.--> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
2.<bindingRedirect> 元素
将一个程序集版本重定向到另一个版本。
<bindingRedirect oldVersion="existing assembly version" newVersion="new assembly version"/>
下列各节描述了特性、子元素和父元素。
特性
特性 |
说明 |
---|---|
oldVersion |
必需的特性。 指定最初请求的程序集的版本。 程序集版本号的格式为 major.minor.build.revision。 该版本号的每个部分的有效值介于 0 和 65535 之间。 你还可以按下列格式指定版本范围: n.n.n.n - n.n.n.n |
newVersion |
必需的特性。 指定要用来取代最初请求的版本的程序集版本(格式为:n.n.n.n) 此值可以指定 oldVersion 之前的版本。 |
子元素
父元素
元素 |
说明 |
---|---|
assemblyBinding |
包含有关程序集版本重定向和程序集位置的信息。 |
configuration |
每个配置文件中的根元素,常用语言 runtime 和 .NET Framework 应用程序会使用这些文件。 |
dependentAssembly |
封装每个程序集的绑定策略和程序集位置。 为每个程序集使用一个 dependentAssembly 元素。 |
runtime |
包含程序集绑定和垃圾回收的相关信息。 |
备注
在针对具有强名称的程序集生成 .NET Framework 应用程序时,默认情况下,应用程序在运行时使用该版本的程序集,即使提供了新版本也是如此。 但是,你可以将应用程序配置为针对更新版本的程序集运行。 有关运行时如何使用这些文件来确定要使用的程序集版本的详细信息,请参见运行时如何定位程序集。
通过在一个 dependentAssembly 元素中包含多个 bindingRedirect 元素,你可以重定向多个程序集版本。 你还可从程序集的更新版本重定向到较旧版本。
应用程序配置文件中的显式程序集绑定重定向需要安全权限。 这适用于对 .NET Framework 程序集和来自第三方的程序集的重定向。 该权限可通过针对 SecurityPermission 类设置 BindingRedirects 标志来授予。 有关更多信息,请参见程序集绑定重定向安全权限。
示例
下面的示例演示如何将一个程序集版本重定向到另一个版本。
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="neutral" /> <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime> </configuration>