In unserem ASP.Net-Webprojekt scheinen einige REFRESH-Dateien mit einigen der von uns verwendeten Drittanbieter-Dlls verknüpft zu sein. Irgendeine Idee was sie sind und wie/wann sie erstellt werden?Was ist eine dll.refresh Datei in ASP.Net?
Antwort
Diese Dateien geben den Pfad zur betreffenden DLL an, um Visual Studio mitzuteilen, wo sie zu finden ist (Sie können dies überprüfen, wenn Sie sie in einem Texteditor öffnen). Sie werden jedes Mal erstellt, wenn Sie dem Projekt eine neue Referenz hinzufügen.
Sie werden normalerweise angezeigt, wenn Sie einen Projekttyp verwenden, der keine Standard-Visual Studio-Projektdatei erstellt, da normalerweise Pfade zu referenzierten DLLs dorthin gehen würden.
Von here:
In einem ASP.NET-Projekt, eine dateibasierte Referenz wird das Hinzufügen einer .refresh Datei in den Ordner Bin hinzuzufügen. Wenn das Projekt unter Versionskontrolle steht, wird diese Datei zur Quellcodeverwaltung hinzugefügt.
*.dll.refresh
Dateien, die das Verzeichnis bin werfen. Jedes Mal, wenn Sie eine externe Referenz hinzufügen, finden Sie eine dll.refresh-Datei direkt daneben. Diesedll.refresh
Dateien sind eine Ausnahme von der Regel, und sie sollten in die Quellcodeverwaltung gehen. Nur so kann Ihr Webprojekt wissen, wo seine Referenzen leben.
Einige Informationen zu den Aktualisierungsdateien nach Versuch und Irrtum. Diese Experimente wurden mit Visual Studio 2012 durchgeführt. Die Verweise wurden einem C# asp.net-Webprojekt hinzugefügt.
Wie bereits erwähnt, wird beim Hinzufügen eines Verweises zu einer Assembly durch Durchsuchen eine .refresh-Datei hinzugefügt. Wenn jedoch zusätzliche abhängige DLLs in der explizit hinzugefügten DLL in dem Verzeichnis vorhanden sind, aus dem Sie hinzufügen, werden die abhängigen Elemente ebenfalls implizit hinzugefügt, jedoch ohne .refresh-Dateien! Also zum Beispiel, ich füge einen Verweis auf "MyAssembly.dll" Ich werde auch "MyAssembly.dll.refresh" bekommen. Aber wenn es eine Assembly "MyDependentAssembly.dll" gibt, von der "MyAssembly.dll" abhängt, bekomme ich keine "MyDependentAssembly.dll.refresh". Was passiert, ist, dass die eine Versammlung erneuert wird, aber nicht ihre Angehörigen! Sie müssen die DLLs nacheinander in umgekehrter Reihenfolge der Abhängigkeit hinzufügen, und dann funktionieren die Dinge besser.
Einige andere Dinge, auf die man achten sollte. Hinzufügen von "MyAssembly.dll" wird auch "MyAssembly.pdb" hinzufügen, wenn es vorhanden ist. Auch "MyAssembly.xml" wird zu den Referenzen hinzugefügt, wenn es vorhanden ist. Diese beiden Dateien werden ebenfalls aktualisiert, wenn "MyAssembly.dll.refresh" vorhanden ist.
Aber wann entscheidet Visual Studio, nach Aktualisierungsdateien zu suchen? Denken Sie daran, dass die Projektdatei in einem Webprojekt die referenzierten DLLs nicht genau verfolgt. Sie werden nicht finden, dass die DLLs in der Projektdatei nur Projektabhängigkeiten aufgelistet sind. Wann findet die Aktualisierung statt?
Die Antwort auf die Aktualisierung erfolgt während eines Builds, wenn die referenzierte Assembly geladen werden muss. Das bedeutet, dass das Erstellen einer vorkompilierten aktualisierbaren Website möglicherweise nicht alle DLLs erfasst. Ich hatte eine DLL, die nicht aktualisiert wurde und dann erkannte ich, dass es nur innerhalb einer .ascx-Datei verwendet wurde. Durch das Deaktivieren der Checkbox "Vorkompilierte Site kann aktualisiert werden" auf der MSBuild Options-Projektseite wurde dieses Problem für mich behoben.
Wenn Sie jedoch referenzierte DLLs hinzufügen, die durch Reflektion in Ihren Code geladen werden, werden sie nicht durch eine Referenz aktualisiert. Sie müssen Build-Ereignisse verwenden, um sie in das Verzeichnis bin zu kopieren.
Ich denke, wenn Sie "Webprojekt" sagen, meinen Sie "Website". –
- 1. Was ist gpstate Datei in ASP.NET
- 2. Was ist eine zustandslose Klasse (in asp.net)?
- 3. Was ist eine IETLD-Datei?
- 4. Was ist eine .sln.ide-Datei?
- 5. Was ist eine cvs-Datei?
- 6. Was ist eine ATB-Datei?
- 7. Was ist eine MDF-Datei?
- 8. Was ist ASP.Net MVC?
- 9. Was ist VaryByParam in asp.net?
- 10. Was ist Hintergrundverarbeitung in Asp.net?
- 11. Was ist ClientScript.RegisterStartupScript in ASP.NET?
- 12. Was ist Identitätswechsel in ASP.net
- 13. Was ist wwwroot in asp.net vnext
- 14. Was ist eine einfache Möglichkeit, eine Datei in Subversion wiederherzustellen?
- 15. Was ist eine TypeScript-Map-Datei?
- 16. Was ist eine PDF-Datei bcmap?
- 17. Was ist eine Datei mit gemeinsamen Objekten?
- 18. Facebook Was ist eine Channel-Datei?
- 19. Was ist eine SLIM-Datei? .schlank? .html.slim?
- 20. Was ist eine Erlang-hrl-Datei?
- 21. Was ist Modellbindung in ASP.NET MVC?
- 22. Was ist die Ansprüche in ASP.NET Identity
- 23. Was ist die Formularsammlung in asp.net/html?
- 24. Was ist ein ASP.NET-Provider?
- 25. Was ist der Sinn von ASP.net AJAX in ASP.net MVC?
- 26. Was ist das Standardsitzungszeitlimit in ASP.NET?
- 27. Was ist die URL in Asp.net Munging?
- 28. Was ist @RenderSection in asp.net MVC
- 29. Was ist besser in asp.net 2.0?
- 30. Eine Datei lokal schreiben ASP.NET
Teilweise kopiert von http://monsur.xanga.com/437206798/dllrefresh-and-aspnet/ –
Hallo SharpUrBrain, es sieht so aus, als ob du den Großteil dieses Inhalts vom obigen Link kopiert hast. Können Sie Ihren Beitrag bearbeiten und dem Autor eine Zuordnung zuweisen?Plagiate sind bei Stack Overflow nicht willkommen, und es ist immer schön, Kredit zu geben, wo Kredit fällig ist. Vielen Dank! –
Muss die DLL, auf die die neue Datei verweist, das .net-Format haben? Ist frische Datei in C++ DLL frisch? – Gqqnbig