Come tutti sappiamo, i programmi .net generano .dll file nella cartella bin dopo la generazione, ma da dove proviene il file .dll.refresh? Quel giorno ho cercato su Google 'noia' e ho scoperto che questo viene generato automaticamente quando si fa riferimento a un assembly di terze parti (direct) nel tuo progetto; questo file .refresh memorizza il percorso originale di quel file di terze parti; se il dll sotto questo percorso viene aggiornato, mentre quando il progetto viene generato, l'assemblaggio verrà aggiornato e modificato secondo questo indirizzo. Senza questo file, VS non potrà aggiornare l'assembly di riferimento secondo lo stato più recente, il che causerà il problema che la versione assembly sia errata. Un piccolo dettaglio porterà a un grosso problema, tutti prestate attenzione!
È stata rilasciata una nuova versione del sito web e si è scoperto un problema serio: una delle librerie non veniva aggiornata automaticamente, ma una versione obsoleta veniva generata automaticamente.
Dopo l'indagine, si è scoperto che era collegato a un file dll.refresh in VSS.
La ragione è semplice:
1。 Durante il processo di sviluppo, quando vengono aggiunti altri riferimenti DLL esterni al sito web, il sistema genera automaticamente il file di aggiornamento, e questo file non verrà generato se vengono aggiunti altri riferimenti DLL di progetto sotto questa soluzione
2。 Il file refresh specifica il percorso per aggiornare automaticamente la dll e, se si tratta di un riferimento a libreria, specificherà la directory Dubug o Release, e il file che ha un errore questa volta è la directory Debug
3。 Lo sviluppatore ha accidentalmente effettuato il check-in del file nel codice VSS
4。 Il problema è che la libreria di riferimento è cambiata molte volte dopo il rilascio della prima versione, ma l'interfaccia non è cambiata, quindi la libreria viene generata separatamente, e poi viene aggiornata solo la corrispondente DLL (versione di rilascio) di tutte le applicazioni, e non ci sono stati problemi, ma quando un'applicazione viene ripubblicata, a causa dell'esistenza di un file di aggiornamento nella directory BIN del progetto, la DLL viene automaticamente aggiornata con il percorso specificato dal file, il che porta al rilascio della vecchia DLL (versione Debug).
Risoluzione dei problemi:
Elimina il file dll.refresh nell'app e ripubblica l'app
Oppure modificare il contenuto in dll.refresh e scrivere correttamente il percorso dll
|