c# - 通过 NuGet 包更改 Global.asax?

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

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

最佳答案

推荐的方法是不要修改宿主应用程序的 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 文件的更为隐蔽的方式。

关于c# - 通过 NuGet 包更改 Global.asax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15168739/

相关文章:

c# - 如何使第 3 方代码能够通过依赖于自签名证书的 HTTPS 连接与 Web 服务一起使用?

c# - System.InvalidOperationException : The type [XYZ] may not be used in this context. BUG确认

c# - 如何根据浏览器文化将特定的 CSS 文件链接到母版页?

asp.net - 根据 asp.net 中的屏幕分辨率调整模式弹出窗口的大小

c# - 当 MSTest 在 TestInitialize 中失败时,为什么不执行 TestCleanup?

c# - 获取mutex后调用await操作

c# - Java和C#中StringBuilder的区别

asp.net - 使用 ASP.NET 显示来自 Mysql 的用户数据

windows - Tesseract + opencv 3.0 + windows,文本模块尺寸小,链接错误

debugging - VS 2012 调试错误