Som vi alle ved, vil .net-programmer generere .dll filer i bin-mappen efter de er genereret, men hvor kommer filen .dll.refresh fra? Jeg googlede kedighed den dag og fandt ud af, at dette automatisk genereres, når man refererer til en tredjeparts assembly (direct) i dit projekt; denne .refresh-fil gemmer den oprindelige filsti for den tredjepartsfil, og hvis dll'en under denne sti opdateres, i modsætning til når projektet genereres, vil assemblyen blive opdateret og ændret i henhold til denne adresse. Uden denne fil vil VS ikke kunne opdatere den refererede assembly efter den seneste status, hvilket vil forårsage problemet med, at assembly-versionen er forkert. En lille detalje kan føre til et stort problem, alle skal være opmærksomme!
En ny version af hjemmesiden blev udgivet, og et alvorligt problem blev opdaget, hvor et af bibliotekerne ikke automatisk blev opdateret, men en forældet version automatisk blev genereret.
Efter undersøgelse viste det sig at være relateret til en dll.refresh-fil i VSS.
Årsagen er enkel:
1。 Under udviklingsprocessen, når andre eksterne DLL-referencer tilføjes til hjemmesiden, genererer systemet automatisk opdateringsfilen, og denne fil vil ikke blive genereret, hvis andre projekt-DLL-referencer tilføjes under denne løsning
2。 Opdateringsfilen specificerer stien til automatisk opdatering af dll'en, og hvis det er en biblioteksreference, vil den angive Dubug- eller Release-mappen, og den fil, der denne gang fejlbehæftes, er Debug-mappen
3。 Udvikleren tjekkede fejlagtigt filen ind i VSS-kodebasen
4。 Problemet er, at referencebiblioteket har ændret sig mange gange efter udgivelsen af den første version, men grænsefladen har ikke ændret sig, så biblioteket genereres separat, og derefter opdateres kun den tilsvarende DLL (Release version) af alle applikationer, og der har ikke været noget problem, men når en applikation genudgives, på grund af tilstedeværelsen af en opdateringsfil i projektets BIN-mappe, opdateres DLL'en automatisk med den sti, filen angiver, hvilket fører til udgivelsen af den gamle version af DLL (Debug version).
Problemløsning:
Slet dll.refresh-filen i appen og genudgiv appen
Eller modificere indholdet i dll.refresh og skrive dll-stien korrekt
|