Frage

Mein Projekt verweist auf eine Baugruppe (nennen es X), die eine andere Assembly verweist (nennen es Y).

Wenn ich versuche, mein Projekt zu kompilieren, erfordert es, dass es Montag Y. Referenz sollte Warum das so ist? Ich erhalte die folgende Fehlermeldung auf der Linie, wo Baugruppe X Bezug genommen wird:

  

vom Typ ‚DevExpress.XtraEditors.XtraForm‘ ist in einer Baugruppe definiert   das ist nicht referenziert. Sie müssen einen Verweis auf Assembly hinzufügen   ‚DevExpress.Utils.v9.1, Version = 9.1.2.0, Culture = neutral,   PublicKeyToken = b88d1754d700e49a‘.

DevExpress.XtraEditors.XtraForm ist die Montage Y.

Warum ist das? Ich habe dieses Verhalten nicht gesehen.

War es hilfreich?

Lösung

Das ist an Ort und Stelle gewesen. Sie werden nur diese bei der Kompilierung, wenn Sie ein Objekt verwenden, die Methoden / Eigenschaften / Mitglieder etc von der Montage Y bekommt.

Der Grund ist, weil .NET nicht auf Montag X verlassen kann, um sicherzustellen, es in der Lage sein wird, die richtige Symbol und Metadaten Informationen zu erhalten.

Andere Tipps

Dies ist seit jeher das Verhalten als wie sonst wird der Compiler Ihr Projekt erstellen, wenn es nicht einen Verweis auf alle Abhängigkeiten hat?

Die Baugruppen, die von Ihrem Projekt verwiesen werden, die für Ihre Anwendung zu arbeiten. Sie verwenden Arten von diesen Baugruppen und ohne diese Art der Anwendung nicht aufbauen können. Noch wichtiger ist, ohne diese Typen Ihre Anwendung kann nicht ausgeführt werden.

Betrachten wir nun, dass jede Assembly, die Sie Bezug auf die gleiche Weise wie die Assembly gebaut wurde und verlangt, dass alle seine referenzierten Assemblys vorhanden sein und berücksichtigt. Dies hat eine Kettenreaktion erzeugen, die lästig sein kann, aber das Endergebnis ist, dass, sobald Sie Ihre Anwendung ausführen, die CLR alle Baugruppen, die es braucht, um die Anwendung auszuführen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top