Som vi alle vet, vil .net-programmer generere .dll filer i bin-mappen etter at de er generert, men hvor kommer filen .dll.refresh fra? Jeg googlet kjedsomhet den dagen og fant ut at dette automatisk genereres når man refererer til en tredjeparts assembler (direkte) i prosjektet ditt, denne .refresh-filen lagrer den opprinnelige filstien til den tredjepartsfilen, hvis dll-filen under denne stien oppdateres, i motsetning til når prosjektet genereres, vil assemblyen bli oppdatert og endret i henhold til denne adressen. Uten denne filen vil ikke VS kunne oppdatere den refererte assemblyen i henhold til siste status, noe som vil føre til problemet med at assembly-versjonen er feil. En liten detalj vil føre til et stort problem, alle følg med!
En ny versjon av nettsiden ble lansert, og et alvorlig problem ble oppdaget der ett av bibliotekene ikke ble automatisk oppdatert, men en utdatert versjon ble generert automatisk.
Etter undersøkelser viste det seg å være relatert til en dll.refresh-fil i VSS.
Årsaken er enkel:
1。 Under utviklingsprosessen, når andre eksterne DLL-referanser legges til på nettsiden, genererer systemet automatisk oppdateringsfilen, og denne filen vil ikke bli generert hvis andre prosjekt-DLL-referanser legges til under denne løsningen
2。 Oppdateringsfilen spesifiserer stien som automatisk skal oppdatere dll-en, og hvis det er en bibliotekreferanse, vil den angi Dubug- eller Release-katalogen, og filen som får feil denne gangen er Debug-katalogen
3。 Utvikleren sjekket feilaktig filen inn i VSS-kodebasen
4。 Problemet er at referansebiblioteket har endret seg mange ganger etter utgivelsen av første versjon, men grensesnittet har ikke endret seg, så biblioteket genereres separat, og da oppdateres kun den tilsvarende DLL-en (Release version) for alle applikasjoner, og det har ikke vært noe problem, men når en applikasjon publiseres på nytt, på grunn av eksistensen av en oppdateringsfil i BIN-katalogen til prosjektet, oppdateres DLL-en automatisk med stien som filen angir, noe som fører til utgivelsen av den gamle versjonen av DLL (Debug-versjonen).
Problemløsning:
Slett dll.refresh-filen i appen og publiser appen på nytt
Eller endre innholdet i dll.refresh, og skrive dll-stien riktig
|