Questa risposta sarà basata sul presupposto che si sta eseguendo il controllo delle versioni delle DLL.
Se si imposta SpecificVersion su true (che è l'impostazione predefinita quando si aggiunge un riferimento), il progetto farà riferimento a tale DLL con una versione particolare (ad esempio, per esempio 1.0.0.0). Se, in un secondo momento, ti viene assegnata una nuova DLL (ad esempio 1.0.1.0), dovrai rimuovere il vecchio riferimento alle DLL e aggiungere il nuovo riferimento. Questo perché il progetto cerca specificamente 1.0.0.0 quando si ha una nuova versione 1.0.1.0.
L'alternativa è impostare la versione specifica su false, che indica al progetto di trovare l'ultima DLL disponibile e di utilizzarla. Il problema è che ora il progetto è obbligato a "cacciare" in vari punti per la dll a cui hai fatto riferimento, il che può aumentare il tempo di costruzione. Lo farà anche se conosce il percorso della DLL a cui hai fatto riferimento. Non sono sicuro se questo è un bug o se questo è fatto in base alla progettazione. Potrebbe verificare se ci sono delle DLL più recenti oltre a quella a cui hai fatto riferimento (forse nel GAC o altrove).
Ecco uno article che descrive questo problema in modo più dettagliato.
In generale, è opportuno fare riferimento a versioni precise delle dipendenze, per evitare [software rot] (https://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts). Ecco perché Ruby ha 'Gemfile.lock', Python' requirements.txt' e Nodejs 'npm-shrinkwrap.json'. –
Vedere anche http://stackoverflow.com/a/24022135/284795 "Una delle cose più importanti da sapere è che SpecificVersion è una proprietà che ha effetto in fase di compilazione e non in fase di runtime." –