2009-05-12 17 views
6

Attualmente il nostro codice .net non è specifico del processore, ma dipende dalle librerie (Oracle/ODP.Net) che lo sono. Abbiamo trovato una soluzione in cui modifichiamo direttamente il file csproj e inseriamo i riferimenti nei gruppi di articoli con una clausola Condition in base alla nostra configurazione di build selezionata. Abbiamo debug/release a 32 bit e debug/release a 64 bit, e gli assembly corretti sono riferimenti quando si costruisce quella configurazione.Riferimenti condizionali

Questo funziona più o meno al momento della compilazione, ma provoca tutti i tipi di wackiness in Visual Studio (2008). Il risultato finale è che lo stesso assieme appare quattro volte sotto i riferimenti e tre hanno il punto esclamativo giallo. Inoltre genera circa 76 avvertimenti di cui non posso sbarazzarmi. Cerchiamo di mirare a 0 avvisi perché vogliamo sapere quando vengono visualizzati nuovi, quindi questo è un po 'un problema.

Qualcuno è a conoscenza di una soluzione ai riferimenti condizionali che gli consente di apparire come un riferimento singolo (che è veramente) e non riempie i miei avvisi al momento della compilazione?

risposta

1

L'unica cosa che salta in mente è avere 4 file di progetto separati ... ma prima di prendere dal panico di dover mantenere 4 file, quando mai si aggiunge una classe, è possibile utilizzare un altro csproj trucco:

<Compile Include="**\*.cs" /> 

che (IIRC) dice "include tutti i file cs a qualsiasi livello nella struttura delle cartelle".

1

Abbiamo trovato una risposta un po 'diversa da quella che stavamo cercando, ma mi piace. Se si aggiunge questo al file di configurazione sotto runtime-> assemblyBinding

 
<dependentAssembly> 
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" /> 
<bindingRedirect oldVersion="2.111.6.20" newVersion="2.111.6.0" /> 
</dependentAssembly> 

Poi le versioni a 64 bit e 32 bit lavorano con la stessa corporatura. Tutto quello che dobbiamo fare è non copiare Oracle.DataAccess.dll localmente quando lo distribuiamo e lasciatelo estrarre dal GAC.

Grazie!