Nagu me kõik teame, genereerivad .net programmid .dll faile bin kataloogis pärast nende loomist, aga kust tuleb fail .dll.refresh? Googeldasin sel päeval "Igavust" ja avastasin, et see genereeritakse automaatselt, kui viidata kolmanda osapoole assemblerile (otse) sinu projektis, see .refresh fail salvestab selle kolmanda osapoole faili algse failitee, kui selle tee all olev dll uuendatakse, võrreldes projekti genereerimisega uuendatakse ja muudetakse assemblerit vastavalt sellele aadressile. Ilma selle failita ei saa VS viidatud assemblerit uuendada vastavalt viimasele olekule, mis põhjustab assamblee versiooni vale olemise probleemi. Väike detail viib suure probleemini, kõik pöörake tähelepanu!
Ilmus uus veebilehe versioon ning avastati tõsine probleem, kus üks raamatukogu ei olnud automaatselt uuendatud, kuid vananenud versioon genereeriti automaatselt.
Pärast uurimist selgus, et see oli seotud VSS-i dll.refresh failiga.
Põhjus on lihtne:
1。 Arendusprotsessi käigus, kui veebilehele lisatakse teisi väliseid DLL-viiteid, genereerib süsteem automaatselt värskendusfaili ning seda faili ei genereerita, kui selle lahenduse alla lisatakse teisi projekti DLL-viiteid
2。 Refresh fail määrab tee dll-i automaatseks uuendamiseks ning kui tegemist on teegi viitega, siis määratakse Dubug või Release kausta, ning seekord viga on Debug kataloog
3。 Arendaja kontrollis faili ekslikult VSS koodibaasi
4。 Probleem on selles, et viiteteek on pärast esimese versiooni ilmumist mitu korda muutunud, kuid liides pole muutunud, seega genereeritakse teek eraldi ja siis uuendatakse ainult vastavat DLL-i (Release versioon) kõigist rakendustest, ning probleeme pole olnud, kuid kui rakendus avaldatakse uuesti, uuendatakse DLL-i automaatselt faili määratud teekonnaga, mis viib vana versiooni DLL-i (Debug versiooni) väljalaskmiseni.
Probleemide lahendamine:
Kustuta rakendusest dll.refresh fail ja avalda rakendus uuesti
Või muuta dll.refresh sisu ja kirjutada dll tee õigesti
|