ASP.NET und Visual Studio - Projekt Hinzufügen Verweise vs Bin-Ordner DLL
Ich gerade einen neuen job angefangen gestern, und das ist erst meine zweite Arbeit im ASP.NET. Wir waren einrichten meiner dev-box und hatten Probleme mit einige Komponenten von Drittanbietern, wie Telerik, etc. Ich war zu bemerken, dass Sie installiert wurden diese third-party-tools, die Jagd nach der DLL-Dateien, kopieren Sie Sie in den Papierkorb und dann das hinzufügen einer Referenz zu dem Projekt, die Punkte, um die Datei in den PAPIERKORB. Mir erscheint das nicht wie normale Praxis.
War ich unter dem Eindruck, dass, wenn Sie nur werfen eine DLL in den bin-Ordner, die Sie nicht brauchen, um einen Verweis hinzuzufügen, es ist einfach nur verfügbar? Grund dafür ist, bei meinem letzten job, den wir verwendet ein paar Klassenbibliotheken Bauten wir im Haus für den Zugriff auf die Daten und fiel nur die DLLs in alle neuen websites (webapps nicht), die wir gemacht haben. Ich erinnere mich nicht, jeder dass Sie einen Verweis, um es zu arbeiten.
So, kann mir jemand erklären, beste Praktiken zum hinzufügen von Dritter Verweise auf Ihre web-app? Fügen Sie die Referenz aus, wo die DLL im system installiert ist? Wenn dem so ist, überprüfen Sie die lokale Kopie, so dass Sie Kopien für die Tonne? Tun Sie einfach kopieren Sie die dll in das bin-und das ist es? Kopierst du die dll in das bin-und dann fügen Sie einen Verweis, um es dort?
Sorry, ich bin sicher, dies scheint wie eine einfache Frage, aber ich bin verwirrt durch die zwei scheinbar verschiedene Methoden, die ich gesehen habe verwendet.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es hängt davon ab, wie Ihr Projekt aufgebaut. Wenn Sie möchten, precompile Ihre Website (und erhalten Sie Intellisense, um richtig zu arbeiten) Sie haben eine Visual Studio-Referenz. Aber etwas fiel in den bin-Ordner wird automatisch geladen ASP.NET bei runtime... es ist also möglich, dass die Montage der Steuerelemente/Objekte in der code-behind-ohne Zugabe eines Projekt-Referenz.
Für kleine Projekte, die ich nur werfen Sie die DLL in das bin-und Verweis hinzufügen. Für komplexere sites/Projekte, ich habe einen dedizierten Ordner "library" für third-party-add-ons und code.
Wir die Versionskontrolle unsere 3rd-party-Baugruppen die Verwendung von Subversion ab, dann ziehen Sie Sie nach unten über svn:externals in ein sub-Verzeichnis der Projektmappe bzw. des Projekts in Frage, die dann verweist Sie (und Kopien in bin).
Diese bietet schon ein paar Vorteile:
Also ein wenig mehr Einstellung, die Dinge oben, aber ich denke es lohnt sich. Beachten Sie, dass wir keine version control (svn:ignore) unsere bin und obj-Verzeichnis, und der 3rd-party-Baugruppen sind in der gleichen Subversion-repository verwiesen wird, die durch relative Pfade.
FWIW: Subversion 1.6.6 behebt einen ärgerlichen Fehler für Datei-basierte svn:externals. Dies bedeutet, dass Sie können wählen, eine oder mehrere Dateien (z.B. Baugruppen) aus einem Verzeichnis, anstatt zu ziehen das ganze Verzeichnis herunter.
2013 Update
Mit dem Aufstieg von NuGet, sollten hosting Ihrer eigenen feed über einen lokalen server, bevor die Entscheidung für die mittels svn:externals, einfach, weil es Ihnen allen die gleichen Vorteile, plus es ist eingebettet in Visual Studio über den Erweiterungsmanager und sorgt für eine bessere Informationen und meta-Daten, z.B. zu können, damit die Entwickler wissen, wenn es eine neue Version.
Die einzige Einschränkung wäre die Gastgeber Ihren feed mit einem Win2008 oder höher-server, wie ich lief in einige Probleme mit unserem alten Win2003-server mithilfe von SSL mit windows-Authentifizierung zu sichern füttern. Ich glaube, das war wegen der älteren version von IIS verwendet, in Win2003, aber konnte das nicht verifizieren.
In der Regel ich habe gerade legen Sie Sie in den Papierkorb, es sei denn, es ist Teil von etwas, das nicht so einfach. Sitecore zum Beispiel sich selbst installiert und hat ein paar Ordner, die Sie gerne verwenden, für die einige Ihrer eigenen code, um uns ein Beispiel geben von etwas, was nicht trivial.
Si ist sehr korrekt.
Auch: halten Sie Ihre bin-Ordner für die Ergebnisse erstellt/kompiliert. Wie gesagt, vor der Verwendung einer "Bibliothek" - Ordner zu verlinken. Ich habe dies sogar mit devexpress.
In der Regel durch die Installation von devexpress es wird installieren Sie die dll im GAC, und Sie können auf Sie wie Sie auf die standard .Net-dll ist. Aber für die Versionsverwaltung ist es viel einfacher, verwenden Sie eine Bibliothek Ordner.
In dieser Weise, können Sie sicher sein, dass jeder verwendet die gleiche version von devexpress (die, die in der sourcesafe -) testen Ihrer Codes, und Sie werden weniger Probleme mit code, der kompiliert werden, auf Ihrem Computer, aber nicht auf einem anderen.
Ich immer lieber zu haben Projekt-Referenz anstatt DLL-Verweis. Nachstehend sind die wichtigsten Grund dafür.