Som vi alla vet genererar .net-program .dll filer i bin-katalogen efter att de har genererats, men varifrån kommer filen .dll.refresh? Jag googlade tristess den dagen och upptäckte att detta genereras automatiskt när man refererar till en tredjepartsassembler (direkt) i ditt projekt, denna .refresh-fil lagrar den ursprungliga filvägen för den tredjepartsfilen, om dll:n under denna sökväg uppdateras, kontra när projektet genereras, kommer assembleren att uppdateras och ändras enligt denna adress. Utan denna fil kommer VS inte att kunna uppdatera den refererade assembleren enligt senaste status, vilket orsakar problemet att assemblerversionen är felaktig. En liten detalj leder till ett stort problem, alla är uppmärksamma!
En ny version av webbplatsen släpptes, och ett allvarligt problem upptäcktes där ett av biblioteken inte automatiskt uppdaterades, utan en föråldrad version genererades automatiskt.
Efter undersökning visade det sig vara relaterat till en dll.refresh-fil i VSS.
Anledningen är enkel:
1。 Under utvecklingsprocessen, när andra externa DLL-referenser läggs till på webbplatsen, genererar systemet automatiskt uppdateringsfilen, och denna fil kommer inte att genereras om andra projekt-DLL-referenser läggs till under denna lösning
2。 Uppdateringsfilen specificerar sökvägen för att automatiskt uppdatera dll:n, och om det är en biblioteksreferens kommer den att ange Dubug- eller Release-katalogen, och filen som får fel denna gång är Debug-katalogen
3。 Utvecklaren råkade checka in filen i VSS-kodbasen
4。 Problemet är att referensbiblioteket har ändrats många gånger efter att den första versionen släppts, men gränssnittet har inte ändrats, så biblioteket genereras separat, och då uppdateras endast motsvarande DLL (Release version) av alla applikationer, och det har inte varit några problem, men när en applikation publiceras på nytt, på grund av att det finns en uppdateringsfil i projektets BIN-katalog, uppdateras DLL:n automatiskt med den sökväg som filens specificerade, vilket leder till att den gamla versionen av DLL:n (Debug-versionen) släpps.
Problemlösning:
Ta bort filen dll.refresh i appen och publicera appen igen
Eller ändra innehållet i dll.refresh och skriva dll-sökvägen korrekt
|