Ich verstehe, dass .NET-Laufzeit immer zuerst in GAC referenzierte Assemblys und dann in den lokalen Ordnern suchen wird. Gibt es in Web.Config eine Einstellung, die diese Reihenfolge umkehrt?Wie bekomme ich .NET, um zuerst nach Assemblys in lokalen Ordnern anstatt nach GAC zu suchen?
Antwort
Nein. Dies ist nicht möglich. Wenn eine DLL der gleichen Version wie die in Ihrem Programm referenzierte DLL in der GAC vorhanden ist, wählt die CLR immer diese. Es gibt keine Möglichkeit, dieses Verhalten zu überschreiben.
Ich bin mir nicht sicher, ob es etwas gibt, das die Suchreihenfolge tatsächlich umkehrt, aber je nach Ihren Anforderungen können Sie in assembly binding redirection schauen, die Ihnen ziemlich viel Kontrolle darüber gibt, welche Versionen von Baugruppen geladen werden.
Dies wird ändern, welche Version Sie binden. Die Version, die Sie letztendlich auswählen, unterliegt jedoch den GAC-Regeln, die ich erwähnt habe. – JaredPar
In der Tat, klärte die Antwort ein wenig, um dies zu reflektieren –
Weitere Informationen. auf Arbeitsumgebungen in this SO thread.
JaredPar ist richtig - die GAC wird immer zuerst für die Montage abgefragt werden. Wenn Sie jedoch wie ich sind und möchten, dass die DLL in der GAC live bleibt und weiterhin debuggt, können Sie ein Buildskript hinzufügen, um Ihre PDB-Datei im selben Ordner abzulegen wie die Assembly im GAC C: \ windows \ assembly \ gac_msil \ assembly.name_ [Token des öffentlichen Schlüssels]).
- 1. Wie sucht eine .NET-Konsolenanwendung nach referenzierten Assemblys?
- 2. Force Maven, um nach Abhängigkeiten im lokalen Repository zu suchen
- 3. Auflisten von Assemblys in GAC
- 4. Config-Dateien für Assemblys in GAC
- 5. Suchen nach lokalen Zeitzonen in Schienen
- 6. Wie benutze ich findstr um nach verschiedenen Strings zu suchen?
- 7. Freigabe von Assemblys in .NET
- 8. Wix - Assemblys für GAC dynamisch registrieren
- 9. Regex, um nach offenen Tags zu suchen
- 10. ASP.NET - AppDomain.CurrentDomain.GetAssemblies() - Assemblys fehlen nach AppDomain Neustart
- 11. Wie gebe ich meine .net-App sekundären Standorten, um nach abhängigen Baugruppen zu suchen?
- 12. Wie bekomme ich Emacs, um Zeilen nach Länge zu sortieren?
- 13. Wie bekomme ich Python, um ständig nach Schlüsselkombinationen zu suchen, auch wenn es im Hintergrund ist?
- 14. Wie bekomme ich LINQ um nach Kultur zu bestellen?
- 15. Wie Sie mit AngularJS nach lokalen Speicheränderungen suchen
- 16. Installieren von Assemblys in GAC mit Windows Installer
- 17. Testpfad schlägt fehl, um nach Ordnerpfad zu suchen
- 18. .NET ClickOnce-Bereitstellung und falsche Assemblys aufgerufen nach aktualisierten Version
- 19. bugzilla, wie nach Gruppe zu suchen
- 20. Wie nach Nullwerten suchen?
- 21. Cypher: Tiefensuche zuerst nach Pfaden nach Beziehungstyp
- 22. Wie kann ich nach verfügbarem Speicherplatz suchen?
- 23. Eleganter Weg, um nach Duplikaten in C++ - Array zu suchen?
- 24. Ctrl-R um rückwärts nach Shellbefehlen in csh zu suchen
- 25. Wie kann ich nach neuen E-Mails suchen und nach neuen E-Mails, um sie mit MailKit zu erhalten?
- 26. twitteR wie nach zwei Hashtags zu suchen
- 27. Wie kann ich nach HTML5-Videounterstützung suchen?
- 28. nach spezifischen Gestenerkennung suchen
- 29. In welcher Reihenfolge suchen ausführbare Dateien nach DLLs?
- 30. Wie kann ich nach erkannten Zeichen in RavenDb suchen
Hat das etwas mit Sicherheit zu tun? – codeulike
@codeulike, ich glaube, es hat mehr mit Service zu tun. Ich weiß weniger über das Warum und mehr über die Fähigkeit, dies zu tun, weil ich viel Zeit damit verbracht habe, dieses Verhalten zu unterlaufen, bevor ich erkannte, dass es einfach nicht möglich war. – JaredPar
Deshalb ist der GAC böse, in meinem Buch. – Benjol