2013-03-01 66 views
7

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

回答

11

推荐的方法不是修改主机应用程序的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 
     } 
    } 
} 

这是一个更为低调的方式在应用程序启动时添加自定义代码,而不是与全球搞乱.asax文件,用户可能已经调整过了。