Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 38548|Odpověď: 2

[Zdroj] Dopad souboru dll.refresh při odkazování na knihovnu tříd projektu

[Kopírovat odkaz]
Zveřejněno 04.05.2020 20:42:50 | | |
Jak všichni víme, .net programy vygenerují .dll soubory v adresáři bin po jejich vygenerování, ale odkud pochází soubor .dll.refresh? Ten den jsem googlil nudu a zjistil jsem, že se to automaticky generuje při odkazování na assembler třetí strany (přímo) ve vašem projektu, tento .refresh soubor ukládá původní cestu k souboru třetí strany, pokud je dll pod touto cestou aktualizován, zatímco při generování projektu se assembler aktualizuje a mění podle této adresy. Bez tohoto souboru nebude VS schopen aktualizovat odkazovaný assembler podle nejnovějšího stavu, což způsobí problém s nesprávnou verzí assembleru. Malý detail může vést k velkému problému, všichni dávejte pozor!

Byla vydána nová verze webu a byl objeven vážný problém, kdy jedna z knihoven nebyla automaticky aktualizována, ale automaticky byla generována zastaralá verze.

Po vyšetřování se ukázalo, že to souvisí se souborem dll.refresh ve VSS.

Důvod je jednoduchý:

1。 Během vývoje, když jsou na web přidány další externí DLL reference, systém automaticky vygeneruje obnovovací soubor a tento soubor nebude generován, pokud jsou pod tímto řešením přidány další projektové DLL reference

2。 Obnovitovací soubor specifikuje cestu k automatické aktualizaci dll, a pokud jde o knihovní referenci, určí adresář Dubug nebo Release, a tentokrát je chybou zaznamenán adresář Debug

3。 Vývojář omylem zařadil soubor do kódu VSS

4。 Problém je v tom, že referenční knihovna se po vydání první verze mnohokrát změnila, ale rozhraní se nezměnilo, takže knihovna se generuje samostatně a poté se aktualizuje pouze odpovídající DLL (Release version) všech aplikací, a nenastal žádný problém, ale když je aplikace znovu publikována, kvůli existenci obnovitelného souboru v adresáři BIN projektu, DLL se automaticky aktualizuje podle cesty určené souborem, což vede k uvolnění staré verze DLL (Debug version).

Řešení problémů:

Smažte soubor dll.refresh v aplikaci a znovu ho publikujte

Nebo upravit obsah v dll.refresh a správně napsat dll cestu





Předchozí:Databázové schéma: Oddělení čtení a zápisu do CQRS
Další:Metoda NPM pro nastavení a rušení proxy
 Pronajímatel| Zveřejněno 04.05.2020 20:44:32 |
Odkazování na externí dll soubor ve VS2005 vytvoří rozšíření nazvané .refresh,
Pokud odkazujete na System.Web.Extensions.dll, automaticky vygeneruje System.Web.Extensions.dll.refresh, která obsahuje absolutní cestu tohoto dll.
Poznámka: Po smazání VS2005 automaticky neaktualizuje dll, na které odkazujete přes cestu k souboru do adresáře binů. To znamená, že pokud je dll, na které jste odkazovali, aktualizováno, budete ho muset ručně znovu provést sám.
 Pronajímatel| Zveřejněno 17.05.2020 11:51:33 |
test
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com