Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 38548|Odpowiedź: 2

[Źródło] Wpływ pliku dll.refresh podczas odwoływania się do biblioteki klas projektu

[Skopiuj link]
Opublikowano 04.05.2020 20:42:50 | | |
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





Poprzedni:Schemat bazy danych: separacja odczytu i zapisu do CQRS
Następny:Metoda NPM do zakładania i anulowania proxy
 Ziemianin| Opublikowano 04.05.2020 20:44:32 |
Odniesienie do zewnętrznego pliku dll w VS2005 generuje rozszerzenie o nazwie .refresh,
Jeśli odwołasz się do System.Web.Extensions.dll, automatycznie wygeneruje on System.Web.Extensions.dll.refresh, który zawiera absolutną ścieżkę tego dll.
Uwaga: Po usunięciu VS2005 nie zaktualizuje automatycznie dll, do którego się odwołujesz przez ścieżkę pliku do katalogu bin. Oznacza to, że jeśli dll, o którym się odwołałeś, zostanie zaktualizowany, będziesz musiał sam ręcznie się do niego odwołać.
 Ziemianin| Opublikowano 17.05.2020 11:51:33 |
test
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com