【问题标题】:Change Global.asax via NuGet package?通过 NuGet 包更改 Global.asax?
【发布时间】:2013-03-01 23:39:26
【问题描述】:

我正在创建一个 NuGet 包,想知道是否有办法修改目标网站的 Global.asax?我想在 Application_Start 中添加一行(如果不存在则创建 Global.asax)。这可能吗?更新将如何运作?

【问题讨论】:

    标签: c# asp.net visual-studio-2012 nuget nuget-package


    【解决方案1】:

    建议的方法是不要修改宿主应用程序的 Global.asax 文件。相反,您可以使用 WebActivator 并将单独的文件添加到项目中。以Ninject.MVC3 NuGet 为例,它就是这样做的。

    例如,当您安装 NuGet 时,您可以简单地将以下文件添加到项目 ~/App_Start/MyNuGetAppStart.cs

    [assembly: WebActivator.PreApplicationStartMethod(typeof(SomeNamespace.AppStart), "Start")]
    
    namespace SomeNamespace
    {
    
        public static class AppStart
        {
            /// <summary>
            /// Will run when the application is starting (same as Application_Start)
            /// </summary>
            public static void Start() 
            {
                ... put your initialization code here
            }
        }
    }
    

    这是在应用程序启动时添加自定义代码的一种更不显眼的方式,而不是弄乱用户可能已经调整过的 Global.asax 文件。

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 2021-09-15
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2019-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多