2013-03-01 67 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文件,用戶可能已經調整過了。