Wie wir alle wissen, generieren .net-Programme .dll Dateien im bin-Verzeichnis, nachdem sie generiert wurden, aber woher kommt die Datei .dll.refresh? Ich habe an diesem Tag nach Langeweile gegoogelt und herausgefunden, dass dies automatisch generiert wird, wenn man auf eine Drittanbieter-Assembler (Direct) in deinem Projekt verweist; diese .refresh-Datei speichert den ursprünglichen Dateipfad dieser Drittanbieterdatei; wenn die DLL unter diesem Pfad aktualisiert wird, wird die Assembler entsprechend dieser Adresse aktualisiert und geändert, wenn das Projekt generiert wird. Ohne diese Datei kann VS die referenzierte Assembly nicht entsprechend dem neuesten Status aktualisieren, was das Problem verursacht, dass die Assemblerversion falsch ist. Ein kleines Detail führt zu einem großen Problem, alle aufmerksam!
Eine neue Version der Website wurde veröffentlicht, und es wurde ein ernstes Problem entdeckt, bei dem eine der Bibliotheken nicht automatisch aktualisiert, sondern eine veraltete Version automatisch generiert wurde.
Nach der Untersuchung stellte sich heraus, dass es mit einer dll.refresh-Datei in VSS zusammenhing.
Der Grund ist einfach:
1。 Während des Entwicklungsprozesses, wenn weitere externe DLL-Referenzen zur Website hinzugefügt werden, erzeugt das System automatisch die Aktualisierungsdatei, und diese Datei wird nicht generiert, wenn andere Projekt-DLL-Referenzen unter dieser Lösung hinzugefügt werden
2。 Die Aktualisierungsdatei legt den Pfad zur automatischen Aktualisierung der DLL fest, und wenn es sich um eine Bibliotheksreferenz handelt, gibt sie das Dubug- oder Release-Verzeichnis an, und die diesmal fehlerhafte Datei ist das Debug-Verzeichnis
3。 Der Entwickler hat die Datei versehentlich in die VSS-Codebasis eingecheckt
4。 Das Problem ist, dass sich die Referenzbibliothek nach der Veröffentlichung der ersten Version mehrfach geändert hat, aber die Benutzeroberfläche nicht verändert wurde, sodass die Bibliothek separat generiert wird und dann nur die entsprechende DLL (Release-Version) aller Anwendungen aktualisiert wird, und es gab kein Problem, aber wenn eine Anwendung neu veröffentlicht wird, wird aufgrund der Existenz einer Aktualisierungsdatei im BIN-Verzeichnis des Projekts die DLL automatisch mit dem von der Datei angegebenen Pfad aktualisiert, was zur Veröffentlichung der alten Version (Debug-Version) führt.
Problemlösung:
Lösche die Datei dll.refresh in der App und veröffentliche die App erneut
Oder ändere den Inhalt in dll.refresh und schreibe den DLL-Pfad korrekt
|