2009-08-05 17 views
21

Ho un assembly, Foo, che ha un riferimento alla barra di assemblaggio (versione X.X.X.2000). Nelle proprietà, la versione specifica è impostata su False. Ho sia la barra (x.x.x.2000) che la barra (x.x.x.1000) nel mio locale GAC. Tutto va bene.Uso del riferimento alla versione specifica in Visual Studio 2008

su un'altra macchina, in cui nessuna versione di Bar è nella GAC, ma Bar (xxx1000) si trova nella stessa directory di Foo, in esecuzione Foo fallirà sostenendo che non riesce a trovare Barr (xxx2000) con

Impossibile caricare file o assembly 'Barra, Versione = xxx2000, Cultura = neutro, PublicKeyToken = YXYXYXYXXYX' o una delle sue dipendenze . La definizione manifest dell'assembly individuato non corrisponde al riferimento all'assembly . (Eccezione da HRESULT: 0x80131040)

Non dovrebbe Foo utilizzare Bar (x.x.x.1000) dal momento che la versione specifica è impostata su False o mi sto perdendo qualcosa?

Forse non ho capito come funziona la versione specifica.

Ci sono alcune altre domande sui riferimenti di versione specifici su Stack Overflow ma nessuno di questi è stato di alcun aiuto per me.

EDIT

ulteriore lettura: http://www.code-magazine.com/article.aspx?quickid=0507041&page=3

+0

Questo si verifica solo con forza di nome (firmato) montaggi, dal momento che il controllo della versione si verifica solo con quelli in uso. – sloth

+0

Vedere http://blogs.msdn.com/b/irenak/archive/2005/12/13/503105.aspx –

risposta

25

"versione specifica" è una struttura di generazione in tempo indirizzando al compilatore di utilizzare la versione disponibile. In fase di esecuzione, il framework cerca ancora la versione specifica dell'assembly utilizzata al momento della compilazione.

Vai a questa discussione forum: http://forums.asp.net/t/1251728.aspx

Problemi correlati