După cum știm cu toții, programele .net generează .dll fișiere în directorul bin după ce sunt generate, dar de unde provine fișierul .dll.refresh? Am căutat pe Google "plictiseală" în acea zi și am descoperit că acest fișier este generat automat când faci referire la un asamblare (direct) al unei terțe părți în proiectul tău, acest fișier .refresh stochează calea originală a fișierului terț, iar dacă dll-ul de sub această cale este actualizat, față de momentul în care proiectul este generat, asamblarea va fi actualizată și modificată conform acestei adrese. Fără acest fișier, VS nu va putea actualiza asamblarea referențiată conform ultimei stări, ceea ce va cauza problema că versiunea de asamblare este incorectă. Un mic detaliu va duce la o problemă mare, fiți atenți toată lumea!
A fost lansată o nouă versiune a site-ului, iar o problemă serioasă a fost descoperită: una dintre biblioteci nu era actualizată automat, dar o versiune învechită era generată automat.
După investigație, s-a dovedit că era legat de un fișier dll.refresh în VSS.
Motivul este simplu:
1。 În timpul procesului de dezvoltare, când alte referințe DLL externe sunt adăugate pe site, sistemul generează automat fișierul de reîmprospătare, iar acest fișier nu va fi generat dacă alte referințe DLL de proiect sunt adăugate sub această soluție
2。 Fișierul refresh specifică calea pentru actualizarea automată a DLL-ului, iar dacă este o referință de bibliotecă, va specifica directorul Dubug sau Release, iar fișierul care este eroat de data aceasta este directorul Debug
3。 Dezvoltatorul a verificat din greșeală fișierul în baza de cod VSS
4。 Problema este că biblioteca de referință s-a schimbat de multe ori după lansarea primei versiuni, dar interfața nu s-a schimbat, așa că biblioteca este generată separat, iar apoi doar DLL-ul corespunzător (versiunea de lansare) a tuturor aplicațiilor este actualizată, iar nu a existat nicio problemă, dar când o aplicație este republicată, datorită existenței unui fișier refresh în directorul BIN al proiectului, DLL-ul este actualizat automat cu calea specificată de fișier, ceea ce duce la eliberarea vechii versiuni DLL (Debug version).
Rezolvarea problemelor:
Șterge fișierul dll.refresh din aplicație și republică aplicația
Sau modifică conținutul în dll.refresh și scrie corect calea dll
|