2013-03-01 18 views
7

Sto creando un pacchetto NuGet e mi chiedevo se c'è un modo per modificare Global.asax del sito Web di destinazione? Vorrei aggiungere una riga in Application_Start (e creare il Global.asax se non è lì). È possibile? Come funzionano gli aggiornamenti?Cambia Global.asax tramite il pacchetto NuGet?

risposta

11

L'approccio consigliato non è modificare il file Global.asax dell'applicazione host. Invece è possibile utilizzare WebActivator e aggiungere un file separato al progetto. Dai un'occhiata ad esempio allo Ninject.MVC3 NuGet che fa esattamente questo.

Per esempio, quando yo installa il NuGet si potrebbe semplicemente aggiungere il seguente file al progetto ~/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 
     } 
    } 
} 

Questo è un modo molto più discreto per aggiungere codice personalizzato all'avvio dell'applicazione piuttosto che pasticciano con il Global file .asax che l'utente potrebbe aver già ottimizzato.

Problemi correlati