通过NuGet包更改Global.asax?

Tru*_*an1 7 c# asp.net nuget nuget-package visual-studio-2012

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

Dar*_*rov 11

建议的方法是不修改宿主应用程序的Global.asax文件.相反,您可以使用WebActivator并向项目添加单独的文件.看一看Ninject.MVC3NuGet上的例子.

例如,当您安装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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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