如果我在GAC中有两个具有相同名称的程序集,我该如何告诉.Net使用哪个?

Ele*_*hoy 3 .net gac

我在全局程序集缓存中有两个具有相同名称的程序集,但具有不同的版本号.如何告诉我的程序引用哪个版本?

为了记录,这是ASP.Net网站中的VB.Net页面.

Gul*_*zim 6

将程序集添加到程序部分下的配置文件中,版本号.

<configuration>
   <system.web>
      <compilation>
         <assemblies>
            <add assembly="System.Data, Version=1.0.2411.0, 
                           Culture=neutral, 
                           PublicKeyToken=b77a5c561934e089"/>
         </assemblies>
      </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

add元素添加了一个在编译动态资源时使用的程序集引用.在编译每个代码模块时,ASP.NET会自动将此程序集链接到资源.


Dil*_*e-O 5

只要版本号不同(这是必需的),您就可以通过web.config文件指定正确的版本.这是我在我的一个应用程序中设置的东西,以引用正确版本的Crystal Reports,因为我们在GAC中有多个版本:

<system.web>

   <compilation>
         <assemblies>
            <add assembly="CrystalDecisions.Web, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.Shared, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.ReportSource, Version=11.5.3700.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
            <add assembly="CrystalDecisions.Enterprise.Framework, Version=11.5.3300.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/>
         </assemblies>
      </compilation>

</system.web>
Run Code Online (Sandbox Code Playgroud)