2012-04-26 11 views
5

Nel pacchetto MiniProfiler.MVC3 NuGet, crea un file in App_Start utilizzato per controllare le impostazioni di MiniProfiler (il SqlFormatter da utilizzare, le modifiche ai ViewEngines, quando avviare MiniProfiler , eccetera.).Aggiornamento del pacchetto MiniProfiler.MVC3 NuGet dopo la modifica di MiniProfiler.cs in App_Start

Ci sono molti commenti TODO in questo file che parlano di come modificare il codice per eseguire come si desidera. Questo è ottimo, ma quando il pacchetto NuGet viene aggiornato, vedrà che ho cambiato il file e non tirato giù la versione aggiornata. Il problema qui è che perdo tutti gli aggiornamenti su quel file e in base a quale altro aggiornamento nel pacchetto rendendolo inutilizzabile (ad esempio, quando si aggiorna MiniProfiler.MVC3 dalla versione 1.9 alla versione 2.0.1 dopo aver modificato MiniProfiler.cs in App_Start , il progetto non si costruirà più a causa delle modifiche necessarie a quel file nella versione 2.0.1).

Qual è il modo migliore per gestire questo? Devo creare il mio file in App_Start e non modificare quello nel pacchetto NuGet, assicurandomi di ricevere sempre l'aggiornamento completo quando eseguo l'aggiornamento alla versione più recente del pacchetto NuGet?

risposta

1

È possibile eseguire il backup del file in App_Start, aggiornarlo, quindi unire manualmente i file o utilizzare uno strumento di unione. Probabilmente finiresti per farlo comunque se usi il controllo del codice sorgente.

0

Quick-and-dirty: crea il file desiderato. Quindi copiare/unire/fondere ogni volta che si aggiorna con il nugget. O con ogni compilazione. Il tempo di costruzione aggiunto è trascurabile.

Leggermente migliore: utilizzare l'evento di precompilazione in Visual Studio e confrontare i file. Se differiscono: copia o comunica all'utente. Non riesco a capire un modo per mostrare una finestra di messaggio, o simile, sulla cima della mia testa, ma si potrebbe sempre creare un nuovo file con un errore di compilazione e qualche testo vicino "discrepanza nel file xxx".

0

provare a utilizzare code mercuriali. È possibile ottenere il codice nel punto desiderato (escluso il file a cui si fa riferimento) e quindi eseguire il commit. Apporta modifiche al tuo file e inseriscilo in una coda. Assicurati di escluderlo da eventuali aggiornamenti futuri (manualmente), quindi, quando desideri aggiornare il tuo pacchetto, cancellalo dal tuo codice base. Questo lo renderà simile al solito, ed eseguirà l'aggiornamento di nuget. Quindi è possibile reinserire la coda nel codice e le modifiche verranno applicate nuovamente. Potrebbe richiedere un po 'di giocherellare, ma vale la pena dare un'occhiata.

Per riferimento:

Problemi correlati