Jak wszyscy wiemy, programy .net generują .dll plików w katalogu bin po ich wygenerowaniu, ale skąd pochodzi plik .dll.refresh? Tego dnia googlowałem "nuda" i dowiedziałem się, że jest to automatycznie generowane przy odwoływaniu się do asemblera zewnętrznego (bezpośredniego) w projekcie, ten plik .refresh przechowuje oryginalną ścieżkę do tego pliku zewnętrznego, jeśli dll pod tą ścieżką zostanie zaktualizowany, a gdy projekt zostanie wygenerowany, asembler zostanie zaktualizowany i zmieniony zgodnie z tym adresem. Bez tego pliku VS nie będzie w stanie zaktualizować odwołanego asembla według najnowszego stanu, co spowoduje problem błędnej wersji asemblera. Mały szczegół może spowodować poważny problem, wszyscy zwróćcie uwagę!
Wydano nową wersję strony internetowej, a odkryto poważny problem, w którym jedna z bibliotek nie była automatycznie aktualizowana, lecz automatycznie generowana przestarzała wersja.
Po sprawdzeniu okazało się, że jest to powiązane z plikiem dll.refresh w VSS.
Powód jest prosty:
1。 Podczas procesu tworzenia, gdy na stronę dodane są inne zewnętrzne referencje DLL, system automatycznie generuje plik odświeżania, a ten plik nie zostanie wygenerowany, jeśli w ramach tego rozwiązania zostaną dodane inne odniesienia do projektu DLL
2。 Plik odświeżania określa ścieżkę do automatycznej aktualizacji dll, a jeśli jest to referencja biblioteczna, określa katalog Dubug lub Release, a plik, który tym razem zostanie zbłędzony, to katalog Debug
3。 Programista przez pomyłkę włożył plik do kodu VSS
4。 Problem polega na tym, że biblioteka referencyjna zmieniała się wielokrotnie po wydaniu pierwszej wersji, ale interfejs się nie zmieniał, więc biblioteka jest generowana osobno, a następnie aktualizowana jest tylko odpowiadająca mu wersja DLL (wersja wydana) wszystkich aplikacji, i nie było problemu, ale gdy aplikacja jest ponownie publikowana, ze względu na istnienie pliku odświeżającego w katalogu BIN projektu, DLL jest automatycznie aktualizowane ścieżką określoną przez plik, co prowadzi do wydania starej wersji DLL (wersji Debug).
Rozwiązywanie problemów:
Usuń plik dll.refresh w aplikacji i opublikuj aplikację ponownie
Albo zmodyfikuj zawartość w dll.refresh i poprawnie napisz ścieżkę dll
|