ASP.NET Wie add assembly in der web.config?
Habe ich eine Versammlung in einem anderen Projekt (projA). Jetzt will ich importieren diese dll in einem anderen Projekt (projB). Wie kann ich das erreichen? Dies ist, was ich versucht habe (in projB).
1 Setzen Sie dll in demselben dir als mein Projekt. (das bin Verzeichnis)
2 Im web.config:
<assemblies>
<add assembly="projA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
Dies ist die Fehlermeldung die ich bekomme:
Konnte nicht geladen, Datei oder assembly 'projA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' oder eine Ihrer Abhängigkeiten. Die befindet assembly manifest definition entspricht nicht den Assemblyverweis. (Ausnahme von HRESULT: 0x80131040)
EDIT:
Der Punkt ist, dass schließlich die assembly-Verweis muss mich dynamisch Hinzugefügt
EDIT 2:
Den Namen der assembly (und Namensraum) sind in der Datenbank gespeichert. Die körperliche assembly (dll) Hinzugefügt wird (durch die installation) projB. Jetzt ist der code in projB Lesen muss, den Namen der assembly, aus der Datenbank, und fügen Sie dann einen Verweis auf die dll, die Hinzugefügt werden, indem Sie die installation.
InformationsquelleAutor Martijn | 2009-09-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind alle projA Abhängigkeiten in projB? Normalerweise würde ich einfach fügen Sie einen Verweis aus einem Projekt zu einem anderen, wenn Sie in die gleiche Lösung.
Edit:
Wenn Sie möchten, fügen Sie eine assembly dynamisch dann vielleicht eine service-Referenz vielleicht etwas zu prüfen. Durch das einbringen in projA die DLL in den bin, dass nicht wirklich alle DLLs, die es erfordern können, so gibt es Möglichkeiten, zu binden Dinge zusammen, so dass Objekte verstanden werden können, über Systeme, wie web services mit Hilfe von XML zu geben, eine gemeinsame Beispiel.
Meine Frage zurück zu hinzufügen einer assembly dynamisch ist, wo würde man es bekommen, und kann das Teil automatisiert werden, um ein Teil von projB als das ist wirklich die Allgemeine Lösung dieser Art von problem.
Edit 2:
Wie könnte man alle projA Abhängigkeiten? Ist es möglich, um es zu bekommen, so dass es nicht hängt von einer Reihe von anderen DLLs, die möglicherweise oder möglicherweise nicht auf dem system, dieser ist zu führen. Das ist es, was der Fehler ist Ihnen zu sagen, dass es einige Montage projC, ist ebenfalls erforderlich. Beachten Sie, dass das hinzufügen von Baugruppen können weiterhin für eine lange Zeit, wenn es viele Ebenen der Abhängigkeiten verwendet.
Zusammenfassung der Antwort: Was würden Sie brauchen, um Referenz, um zu laden, projA in ein neues Projekt? Das ist Ihr problem, das, ohne zu wissen, was die Abhängigkeiten Aussehen, ist es eher schwierig, eine direkte Antwort.
Tut mir Leid, dass Sie so verwirrend ist, habe ich bearbeitet meine post. Hoffentlich macht es klarer
InformationsquelleAutor JB King
Brauchen Sie nicht, um etwas im Web.config, wenn die assembly-DLL in den Bin-Ordner - Sie müssen diese Einstellung nur, wenn Sie verweisen auf eine assembly im GAC befindet.
Die Fehlermeldung, die Sie erhalten, ist im Grunde sagen, dass die assembly nicht gefunden werden kann, die im GAC, die vermutlich weil es nicht da ist!
Siehe mein edit im startpost
InformationsquelleAutor Mark Bell
Müssen Sie nicht manuell hinzufügen, die Referenz im web.config-Datei. Der rechten Maustaste auf Ihr Projekt im Projektmappen-Explorer in Visual Studio, und wählen Sie "Verweis Hinzufügen'. Gehen Sie auf die Registerkarte "Durchsuchen" und finden Sie die DLL, die Sie erstellt, in dem anderen Projekt, wählen Sie es und klicken Sie auf OK. Optional können Sie hinzufügen, das Projekt auf die gleiche Lösung wie Projekt B und fügen Sie die Referenz über die Registerkarte Projekte im Fenster Verweis Hinzufügen.
InformationsquelleAutor TLiebe
Den Fehler
deutet darauf hin, dass eine DLL gefunden wurde, aber nicht mit der version, oder public key.
Ich würde vorschlagen, doppelte überprüfung, um sicherzustellen, dass die assembly-Referenz-version übereinstimmt, Informationen und keine Schurken-DLL mit der alten version zahlen befinden sich im /bin-Pfade "oder" GAC
InformationsquelleAutor Ris Adams
Gut, ich denke, zu einem gewissen Grad es hängt davon ab, was Sie planen, sobald Sie geladen haben, die Montage, und was hast du in der Montage.
Ich nehme an du hast eine Art plugin-Architektur, mit einer bekannten Schnittstelle oder Basisklasse, die Sie gehen, um das aufrufen von Methoden auf, sagen wir IPlugin.
Wie auch immer, hier ist, wie eine assembly zu laden dynamisch, basierend auf das speichern einer Referenz auf entweder eine config-Sektion oder eine DB-Spalte irgendwo:
Also dadurch wird ein string wie
"projA.PluginClass, projA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
laden der assembly, und bringt Sie zurück eine Instanz der Klasse, die Sie interessiert sind in.Würdest du dann verwenden Sie es wie diese:
InformationsquelleAutor Zhaph - Ben Duguid