Attualmente sono in una situazione in cui ho macchine di sviluppo sia a 32 bit che a 64 bit che funzionano sul mio progetto C#. Devo fare riferimento a un paio dll che hanno sia una versione a 32 bit che a 64 bit. Ovviamente, le macchine a 32 bit devono fare riferimento alla DLL a 32 bit e le macchine a 64 bit alla DLL a 64 bit. Il problema che sto avendo è che ogni volta che uno sviluppatore controlla un codice, controlla anche i riferimenti alle DLL, quindi quando qualcuno dall'altra parte tira fuori il codice, non lo costruisce e devono aggiornare manualmente i loro riferimenti indietro a quello che dovrebbero essere. Quindi effettuano il check-in e gli altri sviluppatori devono correggere manualmente i loro riferimenti, ecc. Ecc. Alla nausea.Sviluppando su entrambi i processori a 32 bit e 64 bit, come dovrei strutturare il mio progetto per fare automaticamente riferimento alle dll corrette?
Non immagino che questo sia un nuovo problema, ma è la prima volta che ci ho provato. Esiste una pratica comune per fare in modo che un progetto faccia automaticamente riferimento alla dll corretta per la CPU? O forse un modo per avere un progetto a 32 bit e 64 bit, ognuno con i riferimenti corretti, e un modo (possibilmente uno strumento a linea di comando o un esterno che può essere legato a una build) per legarli insieme in modo che quando i nuovi elementi siano aggiunto o rimosso a uno, l'altro sarà anche aggiornato?
L'altra opzione è che ogni sviluppatore utilizzi lo stesso ambiente di sviluppo virtualizzato. Se seguo questa strada, posso virtualizzare un sistema a 64 bit su hardware a 32 bit, o devo andare dall'altra parte, e virtualizzare a 32 bit. Questo sarà un prodotto SaaS, quindi devo solo distribuire per un processore, e preferirei che sia 64 bit.
Sembra che tu abbia bisogno di diversi file di progetto per i diversi obiettivi –
@David Heffernan Lo penso anch'io, ma il mio nuovo problema è come impedire ai miei sviluppatori di dover aggiornare manualmente gli elementi del codice del progetto quando estraggono dal controllo del codice sorgente ? –
@Matthew Vines che ne dite di un diverso tack, perché le DLL a cui si fa riferimento devono avere nomi diversi? Se sei gestito al 100% non puoi rendere tutto target AnyCPU? –