我正在创建一个 NuGet 包,想知道是否有办法修改目标网站的 Global.asax?我想在 Application_Start 中添加一行(如果不存在则创建 Global.asax)。这可能吗?更新将如何工作?
问问题
1899 次
1 回答
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
}
}
}
这是在应用程序启动时添加自定义代码的一种更不显眼的方式,而不是弄乱用户可能已经调整过的 Global.asax 文件。
于 2013-03-01T23:42:27.520 回答