Ahogy mindannyian tudjuk, a .net programok a .dll fájlokat generálnak a bin könyvtárban, miután létrehozták őket, de honnan származik az .dll.refresh fájl? Aznap rákerestem a "unalmat", és rájöttem, hogy ez automatikusan generálódik, amikor közvetlenül egy harmadik féltől származó assembly (közvetlen) hivatkozással a projektedben, ez a .refresh fájl tárolja az eredeti fájlútját a harmadik féltől származó fájlhoz, ha az út alatt lévő dll frissül, és amikor a projekt generálódik, az assembly frissítés és változás a cím szerint történik. E fájl nélkül a VS nem tudja frissíteni a hivatkozott assembly legfrissebb állapota szerint, ami az assembly verzió hibáját eredményezi. Egy apró részlet nagy problémához vezet, mindenki figyeljen!
Megjelent egy új verzió a weboldalnak, és komoly problémát fedeztek fel, hogy az egyik könyvtár nem frissült automatikusan, hanem egy elavult verziót automatikusan generáltak.
A vizsgálat után kiderült, hogy ez egy dll.refresh fájlhoz kapcsolódik a VSS-ben.
Az ok egyszerű:
1。 A fejlesztési folyamat során, amikor más külső DLL hivatkozásokat is hozzáadnak a weboldalra, a rendszer automatikusan generálja a frissítő fájlt, és ez a fájl nem jön létre, ha más projekt DLL hivatkozásokat is hozzáadunk ehhez a megoldáshoz
2。 A refresh fájl megadja az automatikus frissítési útvonalat a dll-hez, és ha könyvtári hivatkozásról van szó, akkor megadja a Dubug vagy a Release könyvtárat, és ezúttal a hibás fájl a Debug könyvtár
3。 A fejlesztő tévesen bementette a fájlt a VSS kódbázisba
4。 A probléma az, hogy a referenciakönyvtár sokszor változott az első verzió megjelenése után, de az interfész nem változott, így a könyvtárat külön generálják, és ekkor csak az összes alkalmazás megfelelő DLL-jét (Release verzió) frissítik, és nem volt probléma, de amikor egy alkalmazást újra kiadnak, mivel a projekt BIN könyvtárában van frissítő fájl, a DLL automatikusan frissül a fájl által megadott úttal, ami a régi DLL (Debug verzió) kiadásához vezet.
Problémamegoldás:
Töröld a dll.refresh fájlt az alkalmazásból, és tünd ki újra az alkalmazást
Vagy módosítsd a tartalmat a dll.refresh programban, és írd meg helyesen a dll útvonalat
|