System.Web.PreApplicationStartMethodAttribute and ILMerge

本文关键字:ILMerge and PreApplicationStartMethodAttribute Web System | 更新日期: 2023-09-27 18:33:09

假设我需要部署单个程序集(要求)。我将使用 ILMerge 合并所有程序集。但是我的很多程序集都有PreApplicationStartMethodAttribute(我对所有这些程序集都没有任何控制权)。ILMerge 将创建单个程序集,并且 PreApplicationStartMethodAttribute 只允许在一个程序集中使用一次。我该怎么办?

System.Web.PreApplicationStartMethodAttribute and ILMerge

(来自评论)

在 .NET 4.0 中,每个程序集只能指定一次PreApplicationStartMethod

预应用程序启动方法属性类

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = false)]
public sealed class PreApplicationStartMethodAttribute : Attribute

但在 .NET 4.5 中,单个程序集中的多个属性是可以的:

预应用程序启动方法属性类

[AttributeUsageAttribute(AttributeTargets.Assembly, AllowMultiple = true)]
public sealed class PreApplicationStartMethodAttribute : Attribute

因此,您可以通过升级到 .NET 4.5 来避免此问题。