Riferimenti condizionali nel progetto .NET, è ansible eliminare avvisi?

Ho due riferimenti a un assembly SQLite, uno per 32 bit e uno per 64 bit, che assomiglia a questo (questo è un progetto di prova per cercare di sbarazzarsi dell’avvertimento, non rimanere appeso ai percorsi) :

 True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit\System.Data.SQLite.DLL   True ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit\System.Data.SQLite.DLL  

Questo produce il seguente avviso:

 Warning 1 The referenced component 'System.Data.SQLite' could not be found. 

Posso liberarmi di questo avvertimento?

Un modo in cui l’ho guardato per configurare il mio progetto in modo che fosse a 32 bit quando sviluppo, e lasciare che la macchina di compilazione corregga il riferimento quando si costruisce per 64-bit, ma questo sembra un po ‘scomodo e probabilmente incline agli errori.

Altre opzioni?

La ragione per cui voglio sbarazzarmene è che l’avviso è apparentemente raccolto da TeamCity e periodicamente contrassegnato come qualcosa che devo esaminare, quindi mi piacerebbe liberarmene completamente.


Modifica : Per la risposta, ho provato questo:

  ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\32-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit   ... ..\..\LVK Libraries\SQLite3\version_1.0.65.0\64-bit  

e poi nel mio riferimento:

  False $(SqlitePath)\System.Data.SQLite.DLL  

Questo ha eliminato l’avviso, ma è corretto?

Se non esiste un assembly “AnyCPU” per SQL Lite, si è bloccati con build separati.

Per creare build separate creare una proprietà che fornisce il percorso corretto in un gruppo di proprietà condizionale e quindi utilizzare tale proprietà per avere un riferimento singolo (ovvero spostare il condizionale al di fuori del gruppo di elementi di riferimento). C’è un esempio di utilizzo di tale proprietà (per un’estensione FXCop personalizzata) qui , è ansible vedere molte proprietà condizionali definite all’inizio del file .csproj .

(Riepilogo: VS non gestisce tutte le possibilità offerte da MSBuild.)

Per come la vedo io, il problema con il tuo progetto originale era che avevi True specificava System.Data.SQLite, Version=1.0.61.0 , mentre il gruppo effettivo era la versione 1.0.65. La versione di correzione nel nome dell’assembly in Reference dovrebbe aiutare.