.net - 在 Web.config 中添加程序集时,我可以指定任何版本或范围吗?

标签 .net asp.net web-config

在我的工作中,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 中没有任何方法可以直接指定版本范围,但程序集名称的“版本”组件是可选的。您应该能够删除它以搜索程序集的所有版本。

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



我过去所做的是使用程序集的简称,换句话说:
<add assembly="MyCore" />

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

关于.net - 在 Web.config 中添加程序集时,我可以指定任何版本或范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503984/

相关文章:

c# - Func<T> 没有参数

c# - 使用 C# 中的子查询 Access 数据库 INSERT

javascript - Obout Grid Asp.Net 在添加时禁用文本列

c# - 使用查询字符串解析 AppSettings 值时出错

c# - Visual Studio 2017 控制台未显示但正在运行

.net - 在 GUI 线程中访问数据库,不是吗?

c# - ASP.NET 应用程序的 Web 安装程序在运行 IIS7 的计算机上失败

asp.net - 如何增加IIS中的请求超时?

sharepoint - 如何在 Sharepoint 母版页中包含动态信息?

.net - Net的Redis客户端缓存