Perché devo incatenare assembly di riferimento?
-
09-09-2019 - |
Domanda
Il mio progetto fa riferimento a un gruppo (la chiama X) che fa riferimento un altro assembly (si chiamano Y).
Quando provo a compilare il mio progetto, richiede che esso dovrebbe fare riferimento assemblaggio Y. Perché? Ottengo il seguente errore sulla linea in cui viene fatto riferimento di montaggio X:
Il tipo 'DevExpress.XtraEditors.XtraForm' è definito in un assieme che non è fatto riferimento. È necessario aggiungere un riferimento al montaggio 'DevExpress.Utils.v9.1, Version = 9.1.2.0, Culture = neutral, PublicKeyToken = b88d1754d700e49a'.
DevExpress.XtraEditors.XtraForm
è Y assemblaggio.
Perché è questo? Non ho visto questo comportamento prima.
Soluzione
Questo è sempre stato al suo posto. Si otterrà solo questi in fase di compilazione se si sta utilizzando un oggetto che ottiene metodi / proprietà / soci ecc dall'assemblaggio Y.
Il perché è perché .NET non può fare affidamento su di montaggio X per assicurare che possa essere in grado di ottenere una corretta simbolo e meta-dati di informazioni.
Altri suggerimenti
Questo è sempre stato il comportamento come come altro sarà il compilatore costruire il vostro progetto se non ha un riferimento a tutte le dipendenze?
Le assemblee a cui fa riferimento il progetto sono necessari per l'applicazione per funzionare. Si utilizza tipi da quelle assemblee e senza quei tipi l'applicazione non può costruire. Ancora più importante, senza quei tipi l'applicazione non può essere eseguito.
Ora ritengono che ogni assemblea che si domanda è stata costruita nello stesso modo del vostro montaggio e richiede che tutti i suoi assembly referenziati essere presenti e contabilizzate. Questo fa creare una reazione a catena che può essere fastidioso, ma il risultato finale è che una volta si sta eseguendo l'applicazione, il CLR ha tutte le assemblee di cui ha bisogno per eseguire l'applicazione.