【问题标题】:When Adding an assembly in the Web.config, can I specify any version or a range?在 Web.config 中添加程序集时,我可以指定任何版本或范围吗?
【发布时间】:2010-12-21 21:17:46
【问题描述】:

在我的工作中,许多应用程序都引用了 GAC 中的一个核心程序集。 每次发布新的核心版本时,我都不想更改所有生产站点的 Web 配置。有没有办法为程序集版本指定范围或通配符?

类似:

    <compilation debug="false">
    <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="MyCore,Version=*, Culture=neutral, PublicKeyToken=55b47eca7ec17c50"/> <!-- Does not work -->
    <add assembly="*"/>
  </assemblies>
</compilation>

【问题讨论】:

    标签: .net asp.net web-config


    【解决方案1】:

    .NET 中没有任何方法可以直接指定版本范围,但程序集名称的“版本”组件是可选的。您应该能够删除它以搜索程序集的所有版本。

    add Element for assemblies for compilation (ASP.NET Settings Schema)

    我过去所做的是使用程序集的短名称,换句话说:

    <add assembly="MyCore" />
    

    也就是说,有时保留程序集名称(带有版本)很有用,因为如果站点部署不正确,它可以防止旧代码被执行。 MSBuild 可用于在结构化构建实验室内重写 web.config 文件,但需要进行一些手动配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      相关资源
      最近更新 更多