Errore: riferimento al tipo di attestazioni è definito, ma non è stato ansible trovare

Ho una soluzione con 3 progetti:

  • ParsersBase, che definisce un’interfaccia IParseRule
  • ParsersLibrary, che ha un riferimento a ParsersBase e definisce una class HtmlImageUrlParseRule: IParseRule
  • ParsersLibraryTest, che ha un riferimento a ParsersBase e ParsersLibrary e definisce una class di test con alcuni metodi di prova

Quando cerco di costruirlo, ricevo un avvertimento:

Il riferimento al tipo “AVSoft.ParsersBase.IParseRule” afferma che è definito in “c: \ Users \ Tim \ Dropbox \ projects \ Image Downloader \ ParsersLibrary \ bin \ Debug \ ParsersLibrary.dll”, ma non è stato trovato

Perché VS sta cercando di trovare AVSoft.ParsersBase.IParseRule in ParsersLibrary.dll? ParsersLibraryTest ha un riferimento a ParsersBase, non ha alcun senso.

Ho avuto un problema simile. Il sito stava eseguendo una versione cache della DLL e non quella che avevo distribuito nella directory bin. Ho eliminato i contenuti temporanei della cartella asp.net e questo ha risolto il problema.

È stata colpa mia, all’inizio avevo un progetto ParsersLibrary e poi lo ho rinominato in ParsersBase, ma non ho rinominato un nome assembly, quindi ho aggiunto di nuovo un progetto ParsersLibrary.

Quindi, due progetti avevano lo stesso nome assembly e non è molto buono, vero? 🙂 Le unioni si sovrappongono, quindi ho questo errore.

Un altro modo in cui ciò potrebbe accadere è se si stanno utilizzando diversi pacchetti NuGet in cui un pacchetto, probabilmente centrale, è stato aggiornato ma alcuni pacchetti di funzionalità aggiuntivi non sono stati.

Per risolvere il mio esempio recente, l’errore era “Riferimento al tipo” ConsumerSubscriptionConfigurator <> “afferma che è definito in” MassTransit “, ma non è stato trovato”. Questo perché abbiamo aggiornato MassTransit dal 2 al 3, ma non abbiamo aggiornato alcuni degli altri pacchetti opzionali ( MassTransit.log4net e MassTransit.Autofac ) allo stesso numero di versione. Sembra che il reindirizzamento degli assembly abbia mantenuto tutto funzionante fino a quando non abbiamo provato a utilizzare un’altra funzionalità aggiuntiva.

Questo errore sembra coprire una varietà di scenari. Nel mio caso, chiudere e riaprire Visual Studio era il trucco. Dopo aver riavviato Visual Studio, sono riuscito a creare il progetto come previsto.

Ho colpito questa eccezione oggi. Il problema nel mio caso era che avevo installato some.package v2.1 nel mio host e some.package v2.3 installato in altri progetti. Update-Package sul progetto host alla v2.3 risolto il problema.

Ho avuto il problema simile: il riferimento al tipo ‘Func <>‘ afferma che è definito in ‘mscorlib’, ma non è stato trovato. Il problema era il seguente: la mia soluzione aveva Target Framework = 3.5 e ho aggiunto un riferimento a Microsoft.Practices.Prism v 4.0 che è stato creato rispetto al framework 4.0.

Ha funzionato, dopo aver modificato il framework di destinazione in 4.0

ParsersLibraryTest deve fare riferimento a ParsersBase. La seconda parte dell’errore dovrebbe essere “Devi aggiungere un riferimento all’assembly” ParsersBase … ”

Ho provato tutte le risposte di cui sopra, ma nessuno ha risolto il mio problema.

Alla fine, ho controllato il mio ultimo codice (GIT), quindi ho ricontrollato il repository in una posizione diversa.

Non ideale, ma almeno un problema risolto.